Documentação Universally

Guias passo a passo, dicas de SEO multilíngue e melhores práticas para ajudar você a traduzir e escalar seu site WordPress.

Use o Universally com um CMS headless

Uma pilha headless já possui sua renderização, então o Universally se encaixa como um serviço de tradução que seu servidor chama em vez de algo que fica na frente do seu site. Você envia texto, recebe texto de volta e decide onde ele é armazenado e quando é atualizado.

A API e as chaves estão cobertas em Integrar usando a API. Esta página é sobre quais partes dela se encaixam em um front-end desacoplado.

Qual endpoint se encaixa

A API de Tradução tem dois que importam aqui, e configurações headless geralmente querem o primeiro:

/v1/translate/strings /v1/translate/html
Você envia até 500 strings por solicitação uma página renderizada
Você recebe de volta um mapa da string de origem para a tradução o documento traduzido
Se encaixa conteúdo vindo de um CMS como campos páginas renderizadas no servidor que você estava prestes a retornar

Com o endpoint de strings, seu CMS continua sendo a fonte da verdade. Puxe os campos que você precisa, envie os valores, armazene o que voltar com as mesmas chaves. Nada precisa adivinhar qual parte de uma página é conteúdo.

curl -X POST https://translator.universally.com/v1/translate/strings \
  -H "X-API-Key: $UNIVERSALLY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"strings":["Add to cart","Out of stock"],"targetLanguage":"es"}'

A resposta carrega as traduções mais um bloco de metadados: stringsReceived, stringsTranslated, skippedStrings e limitReached. Leia limitReached em todas as respostas. Quando for true, a resposta é parcial.

Uma string que não foi traduzida está ausente de translations, não é retornada inalterada. Procure cada chave com um fallback para seu próprio texto de origem (translations[s] ?? s), ou você renderizará undefined. Veja Traduzir strings.

Solicitações repetidas para texto já traduzido são atendidas do armazenamento e não custam nada a mais. Enviar fresh: true traduz novamente e retorna o resultado sem armazená-lo, então guarde sua própria cópia de qualquer coisa que você obter dessa forma: uma solicitação posterior sem fresh ainda retorna a tradução armazenada. Essas chamadas também não contam contra seu total de palavras.

Mantenha a chave no lado do servidor

A chave do projeto não deve chegar ao navegador. Qualquer coisa em JavaScript frontend, em um pacote mobile, ou em um repositório é público, e a chave pode gastar seu total de palavras. Chame a API do seu servidor ou etapa de build, então sirva o resultado armazenado para os clientes. Veja Encontre sua chave de API.

O que você possui

O plugin WordPress faz várias coisas além de chamar um endpoint. Através da API, elas são suas:

  • Uma URL por idioma. Algo deve rotear /es/pricing/ para sua renderização em espanhol. O Universally não intercepta tráfego. Veja Subdomínios e subdiretórios para o formato a copiar.
  • Armazenamento e invalidação. Mantenha as traduções ao lado do seu conteúdo e reenvie uma string quando a origem mudar. Traduzir a cada solicitação é lento e inútil.
  • O seletor de idioma. Nenhum widget é injetado, então a marcação e o estado são seus.
  • hreflang e sitemaps. O plugin do WordPress emite alternâncias hreflang; seu próprio front-end emite seu próprio <head>, então esses links fazem parte da integração. Veja tags hreflang.

O que ainda funciona sem o WordPress

Qualquer coisa que viva no painel em vez do plugin se aplica ao seu conteúdo da mesma forma:

Isso foi útil?