No modo JavaScript, uma tag de script no <head> do seu site faz todo o trabalho: ela renderiza o seletor de idioma, escolhe um idioma para cada visitante e troca o texto da sua página pela sua tradução no navegador. Seus URLs nunca mudam, então exemplo.com/sobre é o mesmo endereço em todos os idiomas e não há DNS para configurar. A desvantagem é que os motores de busca veem apenas o seu idioma de origem.
O modo JavaScript é o único modo para projetos Webflow, Framer, Squarespace, Duda, Tilda, Weebly e Lovable, e uma de duas opções para projetos de Qualquer Site.
O que é traduzido
Universally extrai strings da sua página com os mesmos parsers que usa para tradução do lado do servidor:
- Texto na página.
- O conteúdo do
<title>e meta. - Os atributos
placeholder,aria-label,alt,titleevalue.
Traduções armazenadas, contagem de palavras e regras de glossário funcionam da mesma forma que em todos os outros modos. O script também define <html lang> e dir para o idioma escolhido.
O que não é
- Motores de busca não veem traduções. As traduções existem apenas no navegador, e os rastreadores recebem seu HTML de origem. Nenhum link hreflang é adicionado.
- Apenas páginas públicas são traduzidas. Universally busca cada página por conta própria, sem a sessão do visitante, então uma página atrás de um login ou senha mostra seu texto de origem.
- Texto que o JavaScript adiciona após o carregamento da página não é traduzido quando não está no HTML que seu servidor envia. O script reaplica as traduções a novo conteúdo por alguns segundos após o carregamento e em navegações de aplicativos de página única, mas apenas para strings que ele já possui.
- JSON-LD não é traduzido.
- Strings de consulta são ignoradas.
?a=1e?a=2compartilham um conjunto de traduções. - Cerca de 2.000 strings por página é o limite. Strings além desse número permanecem no idioma de origem.
- Apenas regras de seletor CSS se aplicam. Em Regras de Tradução, Excluir Seletores CSS funciona. Excluir Páginas e Excluir Localização de Links não têm efeito no modo JavaScript, e o mesmo vale para Incluir Seletores CSS. Veja Incluir e excluir seletores CSS.
- O seletor não tem configurações de design. Ele fica no canto inferior direito com bandeiras e nomes de idiomas (canto superior direito no Framer e Lovable).
Quando as palavras pré-pagas do projeto acabam, novas strings permanecem no idioma de origem e as strings já traduzidas continuam sendo exibidas. Veja Limites de uso.
Como funciona
- O script carrega. O arquivo
s.jsé servido com um cache de 15 minutos. Enquanto o projeto estiver inativo ou não tiver um idioma de destino ativo, ele não serve nada, e é por isso que seu site não muda até que você adicione um idioma. - Um idioma é escolhido. Um visitante de primeira viagem é correspondido automaticamente ao idioma do navegador dele. A escolha é armazenada em um cookie chamado
universally_langpor 30 dias. Selecionar um idioma no seletor define o cookie e recarrega a página. A opção Redirecionar por idioma do navegador em Configurações gerais não tem efeito neste modo: a correspondência automática acontece independentemente. - O navegador envia a URL da página. Apenas a URL e o idioma vão para o Universally, nunca o conteúdo da página.
- O Universally busca a página em si. Ele solicita a URL do seu site publicado anonimamente, sem cookies de visitante e sem login, extrai as strings, as traduz e as retorna.
- O navegador substitui cada string em seu lugar. Nada é recarregado e o endereço permanece o mesmo.
As traduções de uma página são armazenadas em cache por 24 horas no lado do Universally e mantidas no armazenamento do navegador do visitante, para que uma visualização repetida não tenha interrupções. As edições na tela Traduções aparecem assim que o cache de 24 horas expira, ou imediatamente após você clicar em Limpar cache do tradutor em Configurações gerais, o que limpa ambos. Veja Editar traduções manualmente.
Para ver o quanto de uma página foi traduzido, adicione ?uni_debug=1 à sua URL e abra o console do navegador.
Quando escolher subdomínios em vez disso
Se você quiser que cada idioma tenha seu próprio endereço, um projeto Qualquer Site pode migrar para subdomínios de idioma a partir de sua página Configuração. O retorno ainda não está disponível. Veja Subdomínios de idioma.