product update13 min de leitura

O pop-up da extensão respondia à pergunta errada. Na 1.16 ele desenha a página em que você está.

O Telli.sh: Every Translator 1.16 refaz o pop-up da barra de ferramentas como uma visão de status: uma miniatura da página em que você está, cinco fichas identificadas e pontos que só ficam verdes quando a extensão consegue confirmar que está funcionando. Toda a configuração migrou para uma página de ajustes própria, com prévias esqueléticas ao vivo; a tradução instantânea ganhou aba própria e um histórico que se limpa sozinho em 30 dias; e um sino de notificações traz o blog do Telli.sh no idioma do seu navegador, em 15 versões linguísticas.

K
Ken Jo
#every-translator#chrome-extension#browser-extension#translation#product-update#ux

Até esta semana, clicar no ícone do Telli.sh na barra de ferramentas abria uma gaveta de ajustes. A marcação do pop-up na versão 1.15 tinha 16.936 bytes e embutia o formulário de configuração completo dos oito provedores que precisam ser configurados — IA integrada do Chrome, Google, Apps Script, DeepL, Ollama, compatível com OpenAI, OpenRouter e Claude — mais cinco linhas de interruptores. A página de opções ao lado tinha 7.621 bytes. Menos da metade, e era justamente ela que tinha espaço sobrando.

Isso é uma arquitetura de informação de cabeça para baixo, e nenhum ajuste no tamanho da fonte conserta. Um pop-up de barra de ferramentas existe para responder a uma única pergunta, que passamos a chamar de a pergunta de relance : está ligado, e o que ele vai fazer nesta página? Você deveria ter a resposta em menos de um segundo, sem rolar, e então fechar.

O Telli.sh: Every Translator 1.16 foi enviado à Chrome Web Store em 4 de setembro de 2026 e está em análise no momento desta publicação. Esta versão responde à pergunta de relance com um desenho.

TL;DR

  • O pop-up agora é uma visão de status. 372 pixels de largura, no máximo 560 de altura, sem rolagem. Não contém nenhum campo de credenciais — nós contamos, é literalmente zero.
  • Ele desenha uma miniatura da página em que você está, com linhas de chamada partindo de cada parte da maquete até uma ficha identificada: idiomas, modo de exibição, prévia de envio, provedor, assistência de digitação. A maquete espelha o que a extensão realmente desenha, até os 8 pixels de distância entre o botão flutuante e o campo de digitação.
  • Verde significa verificado, não «a caixinha está marcada». Três estados: verde para «funcionando nesta aba», âmbar para «ativado, não verificado», cinza para «desligado».
  • Tradução instantânea e histórico são a segunda e a terceira aba. Entradas de histórico não fixadas expiram 30 dias depois de criadas; as fixadas, não.
  • Um sino de notificações traz nosso blog no idioma do seu navegador, lido de um feed RSS específico de cada idioma, em 15 versões linguísticas. Se você quer saber dos textos novos sem visitar o site, esse sino é agora o caminho mais barato.
  • Tudo o que se configura fica na página de ajustes, que mostra uma miniatura funcionando de cada modo de exibição em vez de descrevê-lo numa frase.

O pop-up largou os ajustes, e a mudança é isso

Por trás da 1.16 há uma única decisão: configuração sai, status entra. O ícone de engrenagem no cabeçalho do pop-up salta direto para a seção correspondente da página de ajustes, então nada ficou mais difícil de alcançar — apenas deixou de atrapalhar o caminho até a resposta.

O que sobrou no pop-up é deliberadamente pouco. Um cabeçalho com o nome do site e um interruptor daquele site, porque «desligar aqui, neste site» é uma ação de status e não um ajuste. Um sino. Uma engrenagem. E o corpo.

É do corpo que vale a pena falar.

A visão de status é um desenho anatômico da sua própria página

Abra o pop-up num site de conversa e você verá o esqueleto daquele site: duas bolhas de mensagem, o campo de digitação embaixo, o botão flutuante do Telli.sh apoiado acima dele e, mais acima, um painel de prévia. Barras cinzas fazem as vezes de texto. De cinco pontos dessa maquete, linhas finas se estendem para a esquerda até uma coluna de fichas identificadas.

Cada ficha nomeia uma coisa e mostra o valor atual dela:

FichaPara onde apontaO que mostra
Idiomasa bolha de mensagemseu idioma de leitura → seu idioma de saída, ex.: English → Auto-detect
Exibiçãoa tradução abaixo da bolhaComentário embutido, Bilíngue, Clique para expandir, Clique para alternar
Prévia de envioos botões do painelLigada ou Desligada
Provedoro botão flutuantequal dos nove provedores está selecionado
Assistência de digitaçãoo campo de digitaçãoo idioma de destino, ou Desligada

As fichas seguem, de cima para baixo, a mesma ordem das partes para as quais apontam, de modo que as linhas de chamada nunca se cruzam. Suas posições verticais não estão fixas no código: são medidas na hora de desenhar. Fichas cujas posições ideais se sobrepõem são fundidas num grupo, e o grupo é centralizado, para que o erro de alinhamento seja repartido em vez de sobrar todo para a última. Passar o mouse sobre uma ficha destaca a parte do desenho à qual ela pertence.

E aqui está a razão de fazer assim. Uma lista de ajustes diz displayMode: bilingual . Um desenho diz onde a tradução vai aparecer na página que você está olhando . E a maquete também não é uma ilustração estilizada: ela espelha a geometria real usada pelo script de conteúdo. O botão flutuante fica 8 pixels acima da borda superior do campo de digitação, alinhado à direita; o painel de prévia de 350 pixels fica 8 pixels acima do botão, com o mesmo alinhamento. O pop-up ensina a interface de verdade, não uma ficção simpática dela.

Um ponto verde precisa significar algo, então o tornamos caro

Os interruptores antigos mostravam intenção. Você via que um interruptor estava ligado e continuava sem saber se algo estava sendo traduzido, se sua chave de API tinha sido aceita ou se aquele site era sequer suportado.

Por isso a 1.16 gasta verde com parcimônia. São três estados, e cada um é uma afirmação que a extensão está disposta a defender:

  • Verde — «Funcionando nesta aba». A extensão consegue confirmar isso agora mesmo.
  • Âmbar — «Ativado, não verificado». O ajuste está ligado e as credenciais estão lá, mas nada provou que a ida e volta funciona.
  • Cinza — «Desligado». Ou está desativado, ou um campo obrigatório continua vazio — o que dá no mesmo: nada será traduzido.

A ficha do provedor é o caso rigoroso. Só dois provedores conseguem verde. O modo gratuito do Google Tradutor não exige credencial do usuário e está sempre acessível, então é verde. A IA integrada do Chrome, que roda no dispositivo, só fica verde depois que o pop-up realmente pergunta a Translator.availability() sobre o seu par de idiomas e recebe uma resposta utilizável. Todos os demais — DeepL, Claude, OpenRouter, Ollama, um endpoint compatível com OpenAI, Apps Script, a API do Google — permanecem em âmbar assim que há URL ou chave, porque verificá-los significaria gastar sua cota numa chamada de teste toda vez que você abre o pop-up. Se o campo necessário está vazio, é cinza, não âmbar. A extensão não vai dizer que algo está ligado quando sabe que aquilo não pode funcionar.

É uma regra deliberadamente pouco lisonjeira. Quem usa os ajustes padrão em geral verá um ponto verde de provedor; quem usa uma API paga verá âmbar para sempre. Âmbar é honesto, e preferimos entregar honesto a entregar verde.

Tradução instantânea: uma aba para o texto que não tem página

Tudo acima pressupõe que você está numa página suportada. Muitas vezes você não está: alguém cola um parágrafo num chamado, ou você copia uma frase de um PDF.

A tradução instantânea é uma segunda aba do pop-up feita exatamente para isso. Escolha o idioma de origem e o de destino, cole até 2.000 caracteres, receba a tradução, copie. Entre os dois seletores há um botão de troca.

Não é um segundo tradutor sentado ao lado do primeiro. A requisição passa pela mesma fila em segundo plano, pelo mesmo cache e pelo mesmo provedor de qualquer tradução que a extensão faça numa página — então o que você configurou uma vez vale aqui também. E vem desligada: instantTranslateEnabled começa em false , porque o trabalho do pop-up é a pergunta de relance, e um bloco de rascunho que você não pediu seria mais uma coisa entre você e a resposta. Ative nos ajustes e o pop-up ganha sua faixa de abas; deixe desligada e ele continua sendo uma única visão de status.

Um histórico que se limpa sozinho: 30 dias, a não ser que você fixe

Com a tradução instantânea ligada, aparece ao lado uma aba de Histórico com o que você traduziu ali, do mais recente para o mais antigo, neste dispositivo.

A regra de retenção cabe em uma linha: entradas não fixadas expiram 30 dias depois de criadas; entradas fixadas nunca expiram. Fixe a frase de que você precisa toda hora e ela fica. O resto envelhece e some sozinho.

Dois detalhes de implementação merecem ser ditos, porque mudam com o que você pode contar. A limpeza acontece na leitura da lista, não por um temporizador em segundo plano: o pop-up é a única coisa que lê essa lista, então um alarme não conseguiria apagar nada mais cedo do que abrir o pop-up já apaga. E desafixar uma entrada que já passou dos 30 dias é justamente o que a apaga: o alfinete era a única coisa segurando a expiração, e a próxima leitura a recolhe.

Como rede de proteção, há um teto rígido de 200 entradas. Se ele for atingido, as fixadas ficam e as mais antigas não fixadas saem primeiro. No topo da aba há um botão para limpar tudo.

O sino é o nosso blog, no seu idioma

Esta é a parte que mais gostaríamos que você notasse, porque é a que continua trabalhando depois que você fecha a aba.

O cabeçalho do pop-up tem um sino de notificações. Ele mostra textos do blog do Telli.sh: até três empilhados como cartões na visão de status, a lista completa atrás do sino e um selo de não lidos sobre o ícone. Cada texto abre o artigo em telli.sh.

O feed é específico de cada idioma. A extensão lê o idioma da interface do seu navegador, compara com as 15 versões linguísticas em que o blog publica — inglês, coreano, japonês, chinês, alemão, francês, espanhol, italiano, português, russo, polonês, vietnamita, tailandês, indonésio e malaio — e busca o feed RSS daquele idioma. Se seu navegador está em tailandês, os avisos chegam em tailandês. Se o idioma do seu navegador não estiver entre os 15, você recebe inglês. As duas variantes do chinês caem no mesmo feed em chinês.

A mecânica foi construída para não atrapalhar. O feed é buscado pelo próprio pop-up, nunca por um alarme em segundo plano, e é servido primeiro do cache — os cartões já estão desenhados antes de a rede ser tocada. O cache dura 6 horas, o que faz um texto novo aparecer dentro de um dia útil e ao mesmo tempo comprime um dia inteiro de aberturas do pop-up — que são dezenas — em no máximo quatro requisições. São guardados até 12 itens. Uma atualização que falha nunca desloca um cache bom; a cadeia de recuo vai do feed ao vivo para o cache, depois para um único cartão permanente do Telli.sh, depois para nada.

Um texto dispensado continua dispensado. A identidade de cada item vem da URL do próprio texto, sem a query string — os parâmetros de rastreamento naqueles links são nossos, não do texto —, de modo que um artigo dispensado não reaparece quando o feed é atualizado e reordenado.

Se você vem querendo acompanhar o que publicamos sobre tradução de reuniões e reconhecimento de fala e nunca dá tempo: instale a extensão e os textos chegam à barra de ferramentas, no seu idioma, três por vez.

Ajustes que você vê antes de assumir

A página de ajustes cresceu até virar a superfície que sempre deveria carregar esse peso, e sua ideia central é que você não deveria precisar imaginar um modo de exibição.

Abaixo do seletor de modo há uma miniatura viva — a mesma linguagem de esqueletos cinzas do desenho do pop-up — mostrando uma bolha de mensagem com a tradução renderizada do jeito que aquele modo renderiza. Troque de Comentário embutido para Bilíngue, para Clique para expandir, para Clique para alternar, e a miniatura muda junto. Há demonstrações equivalentes para a prévia de envio, a assistência de digitação e a tradução instantânea, cada uma com uma legenda de uma linha que muda com o ajuste em vez de descrevê-lo no abstrato.

A seção de provedores parou de exigir que você soubesse os identificadores de modelo de cor. A lista de modelos do Ollama vem do /api/tags do seu servidor local; endpoints compatíveis com OpenAI são lidos de {sua URL base}/models ; OpenRouter e Anthropic vêm dos catálogos deles. Onde a API publica preço por token, o seletor mostra o preço convertido para o valor por milhão de tokens. O OpenRouter informa preços como números do tipo 0.0000001 , que ninguém lê nessa escala. Nada sobre preço é fixado no código, estimado ou lembrado entre atualizações, então um preço desatualizado é estruturalmente impossível: se o catálogo não traz preço, o seletor não mostra nenhum.

A lista de sites suportados era uma coluna plana e ilegível com 30 entradas. Agora está agrupada em 8 categorias: Conversas e e-mail (7 sites), Redes sociais (3), Comunidades e fóruns (4), Desenvolvimento (5), Wikis e referência (2), Blogs e newsletters (3), Notícias (4) e Comentários e avaliações (2), com a linha «Falta algum site? Peça para adicionarmos» no rodapé. É a primeira vez que a extensão oferece qualquer caminho para isso.

E agora existe um primeiro uso guiado. Na instalação — e só na instalação, amarrado ao motivo install do Chrome, de modo que uma atualização nunca o dispara — três passos explicam o que a extensão faz, quais dois ajustes decidem todo o resto e onde fica o botão na barra de ferramentas. Dois dos três passos iluminam os controles reais na página em vez de mostrar a imagem de um controle que você depois teria de procurar.

Conclusão: um pop-up de barra de ferramentas é uma luz de painel, não o painel

O erro do pop-up antigo não era ser feio nem rolar. Era tratar uma superfície de um segundo como bancada de trabalho. Não dá para configurar oito provedores numa caixa de 372 pixels de largura, e ninguém deveria precisar rolar por essa tentativa só para descobrir se alguma coisa está funcionando.

A 1.16 separa esses dois trabalhos com clareza. A página de ajustes é onde você decide, uma vez, com uma imagem de como cada decisão fica. O pop-up é onde você confirma que a decisão está valendo, em menos de um segundo, nesta página, agora. Se acertamos, você vai abrir o pop-up com mais frequência e ficar nele menos tempo.

A versão 1.16 está em análise na Chrome Web Store em 4 de setembro de 2026. Ela chega como atualização automática assim que for aprovada.


Onde o Telli.sh se encaixa: a extensão cobre o texto rápido — conversas, publicações, comentários, e-mail, tópicos de fórum — em 30 sites, 52 idiomas de leitura e 9 provedores de tradução, com uma interface disponível em 50 idiomas. O Telli.sh cobre a outra metade: o trabalho falado. Ele grava ou importa uma reunião, transcreve no idioma em que ela foi realmente falada, traduz para 44 idiomas de destino e guarda o texto original, a tradução alinhada e o resumo de IA numa mesma nota editável. A mesma ideia nos dois lados: colocar a tradução ao lado do original e manter o original.

Começar uma nota de reunião com tradução ao vivo

Fontes

  • Telli.sh: Every Translator na Chrome Web Store — a página em que o pacote 1.16 foi enviado, em 4 de setembro de 2026.
  • Página do produto Telli.sh: Every Translator — os sites compatíveis, os modos de exibição, os provedores e os compromissos de privacidade num só lugar.
  • Telli.sh: Every Translator já está na Chrome Web Store, 23 de junho de 2026 — o texto de lançamento original, para ver o que a extensão fazia antes deste redesenho.
  • Código-fonte da extensão, extension/docs/UX_REDESIGN_PLAN_2026-09-04.md, 4 de setembro de 2026 — a análise que gerou as seis fases entregues nesta versão, incluindo a medição de 16.936 bytes do pop-up contra 7.621 bytes da página de opções e a decisão de que verde significa verificado.

Voltar ao blog