Idiomas
Como a loja habilita idiomas, edita os textos da interface e traduz o catálogo, com o mapa de todas as rotas.
Uma loja Venddor pode atender clientes em vários idiomas. O administrador escolhe quais idiomas a vitrine oferece, define o idioma padrão, ajusta os textos da interface (botões, menus, mensagens) e pode pedir à plataforma que traduza o catálogo (produtos, categorias, páginas...) automaticamente. Esta seção documenta a API dessas tarefas. Todas as rotas exigem token de administrador com o privilégio manage_settings.
Como funciona
Um idioma passa por estes estados na sua loja:
- Escolha no catálogo
GET /api/v1/admin/languages/cataloglista só os idiomas que a loja ainda não habilitou. Se o idioma não existe lá, cadastre-o emPOST /api/v1/admin/languages/custom. - Habilite
POST /api/v1/admin/languages. A plataforma copia o conteúdo do catálogo do idioma padrão para o novo idioma (comocloned) e semeia as traduções da interface. - TraduzaEdite chaves da interface com
PUT .../translationse, para o catálogo, disparePOST .../translatee acompanhe o job. - ReviseUse a fila de revisão para aprovar ou retraduzir o que a máquina produziu.
- Promova a padrão (opcional)
POST .../set-defaultquando o idioma estiver pronto.
Conceitos-chave
Status de uma tradução do catálogo
Cada linha traduzida do catálogo carrega um translation_status:
| Valor | Significado |
|---|---|
cloned | Cópia do texto do idioma padrão, ainda não traduzida. É o estado inicial ao habilitar o idioma. |
machine | Traduzida automaticamente, aguardando revisão. |
stale | Estava traduzida, mas o texto original mudou depois. Precisa traduzir de novo. |
human | Editada por uma pessoa. |
approved | Revisada e aprovada. |
failed | A tradução automática falhou depois de 3 tentativas. |
Status de um job de tradução
| Valor | Significado |
|---|---|
queued | Na fila. |
running | Em execução. |
completed | Terminou (itens individuais podem ter falhado, veja failed_items). |
failed | Falhou por inteiro. |
canceled | Cancelado por você. |
Nomes em camelCase
As rotas de idiomas devolvem JSON em camelCase (nameEn, isDefault), diferente de outras áreas da API. Os campos da tradução automática (job_id, done_items) usam snake_case. Respeite o formato de cada rota.
Sobrescrever nome e direção
Ao habilitar ou editar, você pode trocar para a sua loja o nome em inglês, o nome nativo e a direção do texto (LTR da esquerda para a direita, RTL para idiomas como árabe) sem alterar o catálogo mestre. Enviar texto vazio remove a sobrescrita.
Endpoints
| Método | Caminho | Para que serve | Auth |
|---|---|---|---|
| GET | /api/v1/admin/languages | Listar idiomas da loja | admin |
| GET | /api/v1/admin/languages/catalog | Listar o catálogo disponível | admin |
| GET | /api/v1/admin/languages/{code} | Consultar um idioma | admin |
| POST | /api/v1/admin/languages | Habilitar idioma | admin |
| POST | /api/v1/admin/languages/custom | Cadastrar idioma novo no catálogo | admin |
| PATCH | /api/v1/admin/languages/{code} | Alterar idioma | admin |
| POST | /api/v1/admin/languages/{code}/set-default | Definir idioma padrão | admin |
| DELETE | /api/v1/admin/languages/{code} | Remover idioma | admin |
| GET | /api/v1/admin/languages/{code}/translations | Ler traduções da interface | admin |
| PUT | /api/v1/admin/languages/{code}/translations | Gravar traduções da interface | admin |
| DELETE | /api/v1/admin/languages/{code}/translations/{key} | Apagar uma tradução | admin |
| POST | /api/v1/admin/languages/{code}/translate | Traduzir o catálogo | admin |
| GET | /api/v1/admin/languages/{code}/translate/jobs/{id} | Acompanhar o job | admin |
| DELETE | /api/v1/admin/languages/{code}/translate/jobs/{id} | Cancelar o job | admin |
| GET | /api/v1/admin/languages/{code}/coverage | Cobertura por tabela | admin |
| GET | /api/v1/admin/languages/{code}/review | Fila de revisão | admin |
| POST | /api/v1/admin/languages/{code}/review/approve | Aprovar traduções | admin |
| POST | /api/v1/admin/languages/{code}/review/retranslate | Retraduzir itens | admin |
Erros comuns
- Usar
POST /languagespara reativar um idioma desabilitado. A chamada é idempotente: se o idioma já tem registro na loja, devolve o registro atual (ainda desabilitado). Reative comPATCHeenabled: true. - Tentar desabilitar ou remover o idioma padrão. Retorna 409. Promova outro idioma antes.
- Enviar uma direção diferente de
LTReRTL. Só esses dois valores são aceitos (em maiúsculas ou minúsculas), senão 422. - Disparar a tradução automática sem provedor de IA configurado. Retorna 422 com
provider_not_configurede nada é enfileirado. - Disparar um segundo job para o mesmo idioma. Só um job ativo por idioma: o segundo recebe 409.
- Pedir a lista de traduções sem paginar. Sem
pagenemper_pagea resposta traz apenas as linhas já gravadas na loja, não todas as chaves da interface. - Esperar que
DELETEde idioma inexistente seja silencioso. Retorna 404.