Habilitar idioma
Habilita um idioma do catálogo na loja ou cadastra um idioma novo no catálogo mestre.
Habilitar um idioma tem um efeito maior do que ligar uma chave: a plataforma copia o conteúdo do catálogo (produtos, categorias, páginas e outras tabelas de descrição) do idioma padrão para o novo idioma, com status cloned, e semeia os textos da interface. Isso garante que a vitrine encontre uma linha para cada item no novo idioma. Exige o privilégio manage_settings.
Habilitar idioma
/api/v1/admin/languagesAdminHabilita um idioma do catálogo na loja
O code precisa existir no catálogo mestre (veja Listar o catálogo disponível). A chamada é idempotente: se a loja já tem registro do idioma, nada é recriado e a resposta traz o registro atual, com o enabled que ele já tinha.
Corpo da requisição
codestringobrigatórioes, fr, zh-CN). Maiúsculas e minúsculas são normalizadas (pt-br vira pt-BR).sourceLanguagestringnameEnOverridestringnameNativeOverridestringdirectionOverridestringLTRRTLisDefaultbooleantrue promove o idioma a padrão logo após habilitar.positionintegerpadrão: 0Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/languages" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"code":"es","position":2}'{
"code": "es",
"nameEn": "Spanish",
"nameNative": "Español",
"direction": "LTR",
"locale": "es-ES",
"enabled": true,
"isDefault": false,
"position": 2,
"createdAt": "2026-10-11T14:02:10.114Z",
"updatedAt": "2026-10-11T14:02:10.114Z"
}A resposta é o mesmo objeto de Consultar um idioma. O status é 201 inclusive quando o idioma já existia.
Cadastrar idioma novo
/api/v1/admin/languages/customAdminCadastra um idioma no catálogo mestre
Use quando o idioma que você precisa não está no catálogo (um dialeto, por exemplo). A chamada só cria a entrada no catálogo: depois é preciso habilitá-la com POST /api/v1/admin/languages. É idempotente: repetir o mesmo code devolve a entrada existente sem alterá-la.
Corpo da requisição
codestringobrigatóriodirectionstringobrigatórioLTRRTLnameEnstringnameNativestringnameEn.localestring{
"code": "pt-AO",
"nameEn": "Portuguese (Angola)",
"nameNative": "Português (Angola)",
"direction": "LTR",
"locale": "pt-AO",
"status": "A",
"createdAt": "2026-10-11T14:05:00.000Z",
"updatedAt": "2026-10-11T14:05:00.000Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo inválido; code ausente | {"error":"code is required"} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem o privilégio manage_settings | {"error":"insufficient privileges","required":"manage_settings"} |
| 422 | Código fora do catálogo (habilitar); direção diferente de LTR/RTL, ou ausente no cadastro novo | {"error":"unknown language code","detail":"unknown language code \"zz-ZZ\""} ou {"error":"direction must be LTR or RTL","detail":"direction must be LTR or RTL"} |
| 500 | Falha ao copiar o conteúdo do catálogo ou outra falha interna | {"error":"failed to enable language","detail":"..."} |