A maior parte do seu conteúdo pode ir ao ar no momento em que o engine devolve a tradução. Mas nem sempre. Um texto regulado, uma instrução médica, um título que carrega a marca — nesses casos, você quer que uma pessoa leia a tradução e dê o aval antes de ela entrar no ar, não depois que um cliente já tiver feito uma reclamação.
A forma mais comum de inserir uma pessoa em um fluxo automatizado costuma ser a mais dolorosa: manter a requisição aberta enquanto alguém revisa, criar sua própria fila de revisão ou integrar manualmente a API de um fornecedor de tradução. Esta etapa resolve isso dentro do próprio job. Quando humanEdit está habilitado, o job assíncrono executa o engine, depois pausa em uma pessoa — da sua equipe ou um profissional externo — e retoma com a edição feita por ela, levando essa saída adiante para qualquer etapa seguinte.
Esta é a terceira etapa do pipeline de localização e, como todas as etapas, se aplica apenas a jobs criados pela API assíncrona de localização. Está conhecendo o pipeline agora? Comece pela Visão geral.
Nesta página
Como a pausa funciona#
Depois da etapa principal de tradução, o job entrega a tradução gerada por IA para revisão humana. O revisor lê o texto e pode aprová-lo como está ou enviar uma versão editada. Só então o job continua. O resultado humano — aprovado ou editado — passa a ser a entrada de todas as etapas seguintes e, no fim, o outputData do job.
A objeção mais óbvia a pausar um job por minutos, horas ou até um dia é o custo: uma requisição mantida aberta consome recursos mesmo quando nada está acontecendo. Esta etapa não funciona assim.
A espera é orientada por eventos, não por uma conexão mantida aberta
O workflow é retomado por um evento — um revisor enviando sua decisão no dashboard (Revisão interna) ou um callback do provedor de tradução (Revisão externa). Não há polling em loop apertado nem conexão aberta o tempo todo, então um timeout longo não consome processamento em segundo plano. Um job pode esperar 48 horas por uma pessoa da mesma forma que espera por um modelo: ele fica em espera, não rodando sem parar.
Há dois modos de revisão disponíveis, definidos por engine. A única diferença entre eles é quem faz a leitura — o comportamento de pausa, retomada e continuidade é exatamente o mesmo.
Revisão interna#
Sua equipe revisa as traduções diretamente no dashboard do Lingo.dev. As revisões pendentes aparecem na página Human Reviewer da sua organização (/orgs/<org-id>/human-reviewer), e os revisores são notificados quando novos itens chegam. Um revisor assume um item e então aprova a tradução como está ou envia uma versão editada. O job é retomado imediatamente com essa saída.
Um segundo revisor não pode assumir um item que já esteja sendo tratado por outra pessoa. As atribuições são exclusivas — apenas um revisor pode ficar com um item por vez, então duas pessoas nunca editam a mesma tradução e sobrescrevem o trabalho uma da outra sem perceber. A string fica bloqueada para quem assumiu o item até que ela a libere ou envie a revisão.
A Revisão interna é o modo padrão para novos engines. Use essa opção quando sua equipe tiver domínio do idioma internamente e você quiser controle total sobre a redação final, sem envolver terceiros.
Permissões#
A revisão interna não fica aberta para toda a organização — a página Human Reviewer é protegida por permissões, então uma tradução em revisão só fica visível para as pessoas a quem você conceder acesso. Um administrador da organização atribui esse acesso por meio de papéis (Settings → Roles):
| Permissão | O que ela libera |
|---|---|
Revisar traduções (engine:review_translations) | Ver e trabalhar na fila de revisão — assumir uma tradução pendente, editá-la, aprová-la como está ou enviar a versão editada |
Gerenciar revisões (org:manage_reviews) | Histórico de revisão e estatísticas dos revisores para todas as revisões internas da organização |
As duas permissões são separadas de propósito. Um revisor precisa apenas de Revisar traduções — isso já cobre todo o trabalho: assumir, editar, aprovar e enviar. Gerenciar revisões é para quem supervisiona a operação; ela adiciona a visualização de histórico e estatísticas da organização, mas não inclui acesso à fila por conta própria. Conceda as duas a uma liderança que revisa e acompanha os resultados; conceda apenas a primeira a quem atua só na fila.
Revisão externa#
Quando você não tem revisores internos para um idioma, a tradução é enviada a um tradutor profissional qualificado por meio de um provedor externo. O job pausa da mesma forma e é retomado quando o provedor devolve a tradução editada. Nada muda no seu código — a diferença está em quem lê a string, não em como o job se comporta.
A Revisão externa tem dois níveis, e essa divisão depende do grau de precisão que o conteúdo exige:
| Nível | Melhor para |
|---|---|
| Standard | Tradução precisa com toque humano — textos de marketing, strings de UI e conteúdo de ajuda |
| Pro | Uso profissional com um nível de exigência ainda maior em precisão — conteúdo jurídico, médico e regulado |
Vale ser direto sobre isso: a Revisão externa coloca um tradutor humano real do outro lado, com o prazo e o custo que isso implica. Não é um modelo mais rápido. Use-a quando o ponto central for o julgamento humano — texto regulado, conteúdo de alto impacto — e deixe o caminho só com IA para a maior parte do conteúdo que não precisa desse nível de intervenção.
Timeout#
Uma etapa humana traz um risco que as etapas com IA não têm: a pessoa pode nunca responder. O revisor pode estar de férias, o provedor pode estar sobrecarregado, o item pode simplesmente ser esquecido. Sem limite, o job ficaria esperando para sempre.
Por isso, a espera tem limite. Você define por quanto tempo o workflow deve aguardar a saída humana — a mesma configuração timeoutHours vale para os dois modos de revisão. Se o timeout expirar sem resposta, a etapa será marcada como skipped e o job seguirá com a tradução gerada por IA como saída final. O padrão é 48 horas.
É importante deixar o custo dessa decisão claro: quando há timeout, você publica a tradução de IA sem revisão humana. Para a maior parte do conteúdo, esse é o fallback certo — uma tradução publicada é melhor do que um job preso indefinidamente —, mas ainda assim é uma escolha com tradeoff. Para conteúdo em que a aprovação humana é obrigatória, defina um timeout generoso e configure um alerta para o skip; para conteúdo em que a revisão é desejável, mas não essencial, um timeout curto mantém o pipeline andando.
O timeout é por etapa, não por job
O timeout controla apenas quanto tempo esta etapa espera por uma resposta humana. Ele é independente do tempo que o restante do job leva. Como a espera é orientada por eventos, um timeout longo só custa latência até a saída final se o revisor demorar — nunca processamento em segundo plano.
Como habilitar a etapa#
humanEdit é configurado como qualquer outra etapa do pipeline: com um padrão no nível do engine, na aba Pipeline do engine, e com opção de sobrescrita por requisição. O modelo completo em duas camadas está em Configure the pipeline; a estrutura específica desta etapa é:
{
"humanEdit": {
"enabled": true,
"provider": "internal",
"tier": "standard",
"timeoutHours": 48
}
}provider seleciona o modo — internal para sua equipe, ou o provedor externo nos demais casos. tier (standard ou pro) se aplica à Revisão externa e é ignorado na interna. timeoutHours é o limite descrito na seção acima. Para sobrescrever em um envio específico, passe este bloco dentro de pipelineConfig na chamada de criação; se você omiti-lo, o job herda a configuração do engine.
Quando a etapa é executada, ela é registrada no job em stepId: "humanEdit" com status completed, failed ou skipped — o mesmo registro de etapa que todas as etapas produzem. A leitura desses registros é abordada em Observe pipeline runs.
Uma edição humana pode se afastar das regras do seu engine
Um tradutor humano pode formular algo de um jeito que entre em conflito com o seu glossary, a voz da marca ou as suas regras. Afinal, essa pessoa está traduzindo bem — não decorando a sua configuração. Para alinhar automaticamente a edição humana às regras do seu engine, ative a próxima etapa: avaliação por IA. Ela só é executada após uma etapa humana que realmente tenha gerado um resultado.
