Você está vendo um arquivo onde parte do trabalho já foi feita. Quatrocentas linhas têm um título em alemão. Três mil e seiscentas não têm. Alguém, em algum momento, traduziu o primeiro lote, e então o catálogo cresceu.
As ferramentas óbvias exigem o arquivo completo. Portanto, a questão não é como traduzi-lo. A questão é como traduzir a parte que falta e pagar apenas por essa parte.
Como é, na verdade, um arquivo parcialmente traduzido
Aqui está a estrutura do problema, em um tamanho pequeno o suficiente para ser visto de imediato.
sku,title_en,title_deA-114,Wool coat,WollmantelA-115,Linen shirt,A-115,Linen shirt,LeinenhemdA-116,Denim jacket,A-116,Denim jacket,JeansjackeA-117,Cotton scarf,BaumwollschalAmplie isso para quatro mil linhas (um exemplo ilustrativo, não um trabalho medido) e os dois resultados deixam de ser parecidos. Ou você paga por 4,000 linhas e revisa uma comparação que cobre todas elas, ou paga por 3,600 e revisa 3,600. Na segunda opção, o texto que seu colega já revisou permanece exatamente como ele deixou.
Os cinco tipos de arquivos onde isso acontece
Isso não é uma situação excepcional. É o estado normal de qualquer arquivo que já foi alterado mais de uma vez, e o que está em jogo é importante: em julho de 2020, a CSA Research constatou, em uma pesquisa com 8,709 consumidores de 29 países, que 76% dos compradores online preferem comprar produtos com informações no próprio idioma e que 40% nunca compram em sites em outros idiomas.
Linhas adicionadas desde a última vez. O catálogo cresceu 200 produtos. Os outros 3.800 estão prontos e revisados. Este é o caso mais comum, por margem ampla, e se repete todo mês.
Um idioma adicionado a um arquivo que já possui três. Sua planilha tem colunas em francês, alemão e espanhol. O italiano foi acordado na semana passada e sua coluna está vazia, ou nem existe. Você quer o italiano traduzido e os outros três intocados.
Uma entrega que outra pessoa começou. Um freelancer concluiu o primeiro terço antes de o projeto estagnar. Você não sabe exatamente onde eles pararam e não quer descobrir pagando pela sobreposição.
Um arquivo em que uma ferramenta anterior preencheu o destino com o texto de origem como marcador provisório. Esse caso pega todo mundo de surpresa, porque o arquivo parece pronto. Em uma exportação XLIFF, cada unidade de tradução pode ter um elemento <target> e um atributo state que indica a situação daquele destino (a especificação define o destino como opcional e state como uma indicação de status). Ainda assim, muitas ferramentas preenchem o destino com uma cópia do texto de origem para que a estrutura pareça completa. Ao abrir um arquivo assim, todos os destinos estão preenchidos, embora muitos não estejam traduzidos.
Linhas que foram deliberadamente ignoradas. Descrições internas de SKU, um parágrafo jurídico aprovado pelo seu consultor em apenas um idioma, três produtos que serão descontinuados. Estas não são lacunas. São decisões, e qualquer ferramenta que as preencha por conveniência danifica o arquivo.
Esses dois últimos casos são o motivo pelo qual “traduzir os vazios” não é apenas uma caixa de seleção. O que conta como ausente é algo que só você sabe, portanto, o mecanismo precisa de uma frase sua, e não de uma configuração.
Onde termina o escopo por intervalo e começa o escopo por condição
- Todas as linhas passam pelo processo novamente
- Linhas que você já revisou voltam reescritas
- Você paga duas vezes pela parte finalizada
- A diferença para revisar é o arquivo inteiro
- Apenas as linhas que falham no seu teste estão no escopo
- Linhas finalizadas são copiadas sem alterações
- A contagem de palavras é a lacuna, não o arquivo
- A diferença para revisar é apenas o que estava faltando
Um tradutor automático trabalha com o texto que você fornece. DeepL e Google Translate recebem um texto e devolvem outro. Por isso, você precisa decidir o que não deve ser traduzido antes de enviar o conteúdo (veja nossa análise completa dos limites da tradução em massa com DeepL). Algumas ferramentas permitem definir o escopo por intervalo: o tradutor de Excel da Smartcat, por exemplo, permite informar um intervalo de colunas, como A:H, ou de linhas, como 1:50, e escolher se ele será traduzido ou deixado como está. Mas um intervalo indica uma localização, enquanto “somente onde a célula em alemão estiver vazia” é uma condição sobre o conteúdo, e é essa parte que resolvemos. Caso contrário, você precisa filtrar o arquivo por conta própria antes de enviá-lo e depois reunir tudo de novo. É uma tarefa com planilhas que fica sob sua responsabilidade e precisa ser repetida todo mês. Separadamente, e sem se tratar de nenhum teste que tenhamos realizado: algumas equipes nos procuraram porque, em seus conteúdos reais e com sua terminologia específica, a tradução automática deixou de atingir o nível de qualidade que publicam.
Um assistente geral consegue seguir a regra por um tempo. Cole 50 linhas no ChatGPT ou Claude com “preencha apenas as células vazias em alemão” e ele fará isso. O problema surge na escala, e surge silenciosamente: após os primeiros blocos, uma linha que já tinha tradução recebe uma nova, e você descobre isso na revisão, ou nem descobre. Existe uma versão mais longa desta comparação se desejar, mas a versão curta é que uma regra na qual você precisa confiar não pode ser verificada, enquanto uma aplicada por código, sim.
Uma agência fará exatamente o que você pedir. O custo não é a tarifa por palavra, mas a preparação: extrair as linhas faltantes, explicar quais colunas devem ser ignoradas, esperar e depois mesclar o resultado de volta ao seu arquivo. Esse trabalho não é linguístico, e o custo oculto é que você repetirá tudo isso na próxima atualização.
Primeiro, o método manual
Se preferir fazer isso manualmente, o básico é simples:
- Adicione um filtro à coluna de destino e mostre apenas as células vazias.
- Copie o texto de origem das linhas que continuarem visíveis.
- Cole o texto em um tradutor e traduza.
- Cole o resultado nas linhas filtradas da coluna de destino.
- Remova o filtro e confira se a ordem das linhas e as linhas concluídas continuam no lugar.
Funciona e é uma opção razoável para algumas centenas de linhas. O que vem a seguir é para quando você prefere não repetir essas cinco etapas todo mês ou quando “faltando” significa mais do que uma célula vazia.
A instrução vira código, e é por isso que ela se mantém na linha 18.000
Esta é a parte que vale a pena entender, pois explica por que uma regra de escopo se comporta de maneira diferente aqui.
Sua frase não é passada apenas como uma dica para um modelo de tradução. O AI Glot lê a estrutura do seu arquivo e transforma sua instrução em um pequeno programa que percorre o arquivo e produz a lista exata de quais trechos de texto estão no escopo. Essa lista é então traduzida. A regra é avaliada por código uma vez por registro, portanto, o registro 18.000 passa pelo mesmo teste que o registro 1. Não há desvio, pois não há nada que possa desviar.
Esse programa passa por um conjunto de verificações antes que qualquer crédito seja consumido:
- Ele não pode alterar seu arquivo. O documento é comparado antes e depois da execução do programa, e qualquer modificação é sumariamente rejeitada. Seu upload nunca é tocado, e cada decisão de escopo aplica-se apenas ao arquivo de saída.
- Ele não pode inventar texto. Cada trecho de texto selecionado deve existir no seu arquivo palavra por palavra. Ele não pode parafrasear uma célula durante o processo.
- Cada destino deve ser um campo gravável real, portanto, uma regra que aponte para uma coluna inexistente falha no momento do planejamento, em vez de gerar um arquivo estranho.
- Se sua regra não corresponder a nada, o planejamento falha e avisa você. Isso parece pouco amigável, mas é genuinamente útil: é assim que você descobre, de graça, que o arquivo que você achava estar incompleto já está finalizado.
“Ainda faltando” significa quatro coisas diferentes
Aqui está a nuance que define se a sua frase funcionará. Uma lacuna não é o mesmo objeto em todos os formatos, portanto, o teste que sua instrução deve descrever muda conforme o arquivo que você está usando.
Em uma planilha, uma lacuna é uma célula vazia. Um arquivo CSV não distingue origem e destino: a RFC 4180 descreve apenas registros, campos e uma linha de cabeçalho opcional. Portanto, só sua instrução pode especificar qual coluna é a de origem e qual é a de destino. Seja o arquivo uma exportação CSV ou uma pasta de trabalho do Excel, o critério é o mesmo: esta linha tem um título em inglês e nada na coluna de alemão, então ela deve ser traduzida. Peça: “somente as linhas em que a coluna de alemão ainda está vazia”.
Em um arquivo bilíngue, muitas vezes há uma lacuna quando o destino ainda é igual à origem. O XLIFF associa cada unidade a um campo de tradução que muitas ferramentas preenchem previamente com uma cópia do texto de origem. Nesse caso, verificar se o campo está vazio não funciona. O certo é comparar: “traduza somente as unidades em que o destino ainda contém o mesmo texto da origem”. Essa única frase resolve o caso de um arquivo como este, que é um exemplo ilustrativo, não um arquivo de cliente: uma exportação do WordPress com 228 unidades, das quais 217 ainda têm o francês original no destino, é um trabalho normal, não motivo para discutir se o arquivo está pronto.
Em uma árvore de chaves, uma lacuna é uma chave que não existe. Em JSON ou YAML, a tradução em alemão de uma string ou existe como uma chave irmã ou não existe, e uma chave ausente pode ser criada desde que seu objeto pai exista. Um valor vazio também conta, então “apenas onde a chave de está ausente ou vazia” cobre ambos os casos.
Em um arquivo monolíngue, não há nada dentro dele para comparar. Esse é o limite real. Um arquivo Android strings.xml, um arquivo iOS .strings (o guia da Apple mantém um arquivo .strings por idioma, cada um em uma pasta de idioma, como de.lproj), um arquivo Java .properties, um RESX do .NET e um arquivo de legendas SRT contêm exatamente um valor por chave. Não há uma coluna de origem ao lado. Portanto, não é possível verificar automaticamente se algo “já está traduzido”, porque o arquivo não registra essa informação. O que funciona é usar o que o arquivo realmente mostra: um valor vazio ou um marcador que você adicionou, como o prefixo TODO. Se seu único indício é que um valor “parece estar em inglês”, nenhuma regra consegue expressar isso com segurança. É melhor dividir o arquivo antes de enviá-lo.
Onde colocar a frase de escopo e onde ela silenciosamente não faz nada
Se errar isso, você pagará para traduzir o arquivo inteiro. Existem dois lugares para escrever uma instrução e eles não são intercambiáveis.
- Decide QUAL texto será traduzido
- Lido uma vez, com base na estrutura do seu arquivo
- Compilado em código e depois executado em cada registro
- Exemplo: "apenas as linhas onde a coluna de alemão esteja vazia"
- Decida COMO cada string é escrita
- Aplicado enquanto uma única string está sendo escrita
- A única coisa visível é aquela string
- Exemplo: "mantenha o placeholder {count} exatamente como escrito"
A instrução do plano é aquela que você digita antes de visualizar um plano. Ela é analisada com base na estrutura do seu arquivo e é a base para a construção do plano. O escopo é definido aqui.
As instruções de lote são levadas para a tradução e aplicadas à medida que cada string individual é escrita. Nesse momento, a única coisa visível é uma única string, portanto, uma regra só pode descrever algo visível dentro dessa string: manter um placeholder como está, não mexer em uma URL no conteúdo, nunca traduzir o nome de um produto, usar registro informal.
Agora, a falha. Coloque “traduza apenas as células vazias” nas instruções de lote e nada acontece, e nada avisa você. Não há células naquele momento. Existe uma string, já selecionada, já sendo traduzida, porque a decisão de escopo foi tomada anteriormente por uma instrução que nunca mencionou o escopo. O arquivo retorna totalmente traduzido e a fatura reflete isso.
| Escrito nas instruções de lote | Por que não funciona | Onde deveria estar |
|---|---|---|
| “Traduza apenas as células vazias.” | Nenhuma célula está visível, apenas uma string. | Na instrução do plano |
| “Pule a primeira coluna.” | Uma coluna é estrutura de arquivo. | Na instrução do plano |
| “Apenas as linhas adicionadas desde março.” | O mesmo. | Na instrução do plano |
| “Não mexa na coluna SKU.” | O mesmo. Descreva o conteúdo em vez disso: “não traduza códigos de produto alfanuméricos”. | Em qualquer um, reescrito |
A maneira mais simples de lembrar: o plano decide o que será traduzido, as instruções de lote decidem como será a leitura.
Escrevendo a frase
Inglês simples, uma ou duas linhas, nomeando a origem e o destino explicitamente. Todos estes funcionam como escritos:
Only the rows where the German column is still empty. Source is English.
Only translate the units where the target is identical to the source,
it is a placeholder. Leave every unit that already differs.
Fill the empty Italian column from the English one. Do not touch the
French, German or Spanish columns.
Translate the description and the SEO title into Dutch where the Dutch
version is missing. Leave the handle and the SKU alone.
Dois hábitos que valem a pena. Nomeie o idioma de origem em vez de deixar que ele seja inferido, porque a inferência é menos confiável justamente onde mais custa: strings curtas e arquivos que já contêm alguns valores traduzidos, que é o caso de todos os arquivos deste artigo. E nomeie as colunas ou chaves que você deseja manter intactas, mesmo quando sua regra de escopo já as exclui. Custa apenas uma cláusula e elimina toda uma categoria de mal-entendidos.
Se os mesmos termos precisarem sair da mesma forma que no último lote, coloque-os em um glossário de workspace uma única vez. As linhas que você está preenchendo agora corresponderão às linhas que alguém preencheu em março, que é a outra metade para finalizar corretamente um arquivo parcialmente traduzido.
Confirme o escopo antes de pagar por ele
Você nunca precisa confiar que a frase foi compreendida, porque você lê o plano primeiro.
O plano retorna com contagens mensuradas, o número real de itens e palavras encontrados no seu arquivo, não uma estimativa baseada no tamanho. Ele oferece três formas de verificação: uma prévia de como seu arquivo ficará depois, uma tabela com os trechos exatos de texto que serão enviados e um resumo em linguagem simples do que foi compreendido. A tabela de itens é onde um escopo errado se torna óbvio, pois uma linha que você esperava que fosse excluída estará ou não naquela lista.
Se estiver errado, diga isso em uma frase e o sistema planeja novamente. Criar o lote e planejar é gratuito e repetível quantas vezes você quiser. A aprovação é a única etapa que consome créditos, e o número que você aprova é a contagem de palavras mensurada do que está no escopo. Portanto, o erro caro em todo este artigo, pagar para retraduzir um trabalho que já foi feito, é algo que você só consegue fazer ao aprovar um plano que indique isso.
Essa ordem importa mais do que parece. Uma ferramenta onde o escopo é um palpite precisa de confiança. Uma ferramenta onde o escopo é um plano que você lê é aquela onde errar não custa nada.
Mais duas coisas que valem a pena saber
Você pode solicitar apenas os registros alterados. Se o que você realmente precisa é de um arquivo pequeno para entregar a um revisor, em vez de todo o catálogo, diga isso e a saída manterá apenas os registros que receberam uma tradução. Isso funciona para CSV, Excel, JSON, YAML, PO, XLIFF, SRT e arquivos ZIP destes. Isso é deliberadamente recusado para arquivos de recursos de apps, porque um app busca cada chave que espera encontrar e um strings.xml parcial causa um crash em vez de ser apenas um arquivo menor.
Uma regra que precisa contabilizar o arquivo inteiro não vai funcionar. Em arquivos grandes, o programa que seleciona o escopo percorre janelas consecutivas de linhas, em vez de analisar tudo de uma vez. Regras baseadas na posição funcionam, porque é possível fazer o cálculo: a cada duas linhas, as primeiras 500 linhas. Uma regra que dependa de uma contagem acumulada, como “as primeiras 200 linhas que ainda estão vazias”, não funciona, porque nenhuma passagem isolada sabe quantas linhas correspondentes havia nas janelas anteriores. Peça todas as linhas vazias ou um intervalo fixo de linhas. As duas opções funcionam. As planilhas podem ter muitas linhas: o Excel permite 1,048,576 linhas por planilha, então dá para testar tranquilamente uma regra que se aplique à linha 18,000.
O escopo honesto de tudo isso
Use-o para a parte que é genuinamente repetitiva: as 200 linhas que surgiram este mês, o quarto idioma que alguém concordou na semana passada, as duas mil unidades que uma ferramenta anterior deixou mantendo o texto de origem. Esse trabalho é miserável se feito à mão, e é o mesmo trabalho todo mês.
Depois, gaste o tempo de revisão no resultado, não na filtragem do arquivo. Muitas equipes usam isso como uma primeira passagem e pedem para um revisor analisar, o que é um bom uso de um especialista e um uso ruim de uma tarde gasta criando uma cópia de uma planilha com algumas linhas excluídas.
Se você ainda não executou um desses fluxos de ponta a ponta, comece pelo fluxo completo em vez de focar no escopo: há um passo a passo para traduzir um arquivo CSV e outro para traduzir uma pasta de trabalho do Excel, e a frase de escopo acima se aplica a qualquer um deles sem alterações.
Para a sua página inicial, contrate um tradutor. Para as 3.600 linhas que ainda estão vazias, não pague pelas 400 que não estão.
