Como Traduzir um Arquivo CSV

OpenL Team 1/9/2026

TABLE OF CONTENTS

CSV parece simples, mas sua tradução pode dar errado rapidamente: colunas podem se deslocar, aspas podem quebrar, caracteres não latinos podem ficar ilegíveis, ou IDs podem ser “traduzidos” para algo inutilizável. Este guia mostra um fluxo de trabalho seguro e prático para traduzir um arquivo CSV preservando sua estrutura, além de um checklist de QA e soluções para problemas comuns.

Se você quer a opção mais simples, use um tradutor compatível com CSV (Método 1) em vez de copiar o texto do CSV para um tradutor genérico.

Antes de importar o arquivo traduzido, execute o checklist de QA deste guia para identificar problemas de coluna/codificação logo no início.

O Que Torna a Tradução de CSV Difícil

CSV é texto simples, mas contém regras de estrutura:

  • Delimitador: geralmente vírgula (,), às vezes ponto e vírgula (;) em alguns locais.
  • Aspas: valores de texto podem estar entre aspas duplas ("). Aspas dentro dos valores devem ser escapadas (comumente "").
  • Quebras de linha dentro das células: permitido, mas somente se a célula estiver devidamente entre aspas.
  • Codificação: seu arquivo pode ser UTF‑8, UTF‑8 com BOM ou codificações legadas.
  • Tipos de dados mistos: números, datas, SKUs, IDs, URLs e placeholders geralmente devem permanecer inalterados.

Ferramentas de tradução que tratam o CSV como “apenas texto” podem modificar acidentalmente caracteres estruturais (delimitadores/aspas/novas linhas) ou transformar tipos de dados (datas/números), causando falhas na importação.

Antes de Começar

Estes passos rápidos evitam a maioria dos problemas na tradução de CSV:

  1. Faça uma cópia de backup

    • Salve file.csvfile.original.csv.
    • Se o CSV incluir dados de clientes, remova ou anonimize campos sensíveis antes de enviar para qualquer lugar.
  2. Identifique campos “não traduzir” Mantenha estes inalterados:

    • IDs, chaves, SKUs, números de pedido
    • URLs, e-mails, caminhos de arquivos
    • Placeholders e variáveis ({name}, {{amount}}, %s, :count)
    • Tags, valores de enumeração, códigos de status internos (PAID, REFUNDED)
    • Qualquer campo consumido por código (chaves de API, blobs JSON, trechos HTML)
    • Se estiver em dúvida, veja: /what-not-to-translate
  3. Confirme o delimitador, regras de aspas e finais de linha

    • Se você abrir o CSV e ele “parecer uma única coluna”, provavelmente o delimitador está errado.
    • O CSV típico usa o delimitador , e aspas " (veja RFC 4180: https://www.rfc-editor.org/rfc/rfc4180).
  4. Confirme a codificação

    • Prefira UTF‑8 para conteúdo multilíngue.
    • Se você abrir o CSV traduzido no Excel no Windows, pode ser necessário UTF‑8 com BOM para evitar caracteres corrompidos.
    • Informações sobre BOM: https://unicode.org/faq/utf_bom.html
  5. Opcional, mas recomendado: adicione um row_id estável Para CSVs que serão reimportados ou comparados posteriormente, adicione uma coluna de chave única (por exemplo, row_id) para que você possa verificar se as linhas não foram reordenadas.

Método 1 — Tradutores online compatíveis com CSV (recomendado)

Tradutores compatíveis com CSV tratam o CSV como dados estruturados, não “apenas texto”, então é menos provável que quebrem delimitadores, aspas ou o layout de linhas/colunas. Sempre execute a lista de verificação de QA antes de importar.

Comparação de opções neutras

OpçãoPontos fortesCompensaçõesMelhor para
OpenL CSV Translator OnlineFeito para estrutura CSV; upload/download rápidoFluxo baseado em upload; não ideal para dados sensíveisRascunhos CSV rápidos e confiáveis
DeepL / Google Cloud / AWS Translate (API)Automatizável; boa qualidade; adequado para fluxos em loteRequer engenharia + manipulação cuidadosa de CSVEquipes que traduzem muitos arquivos
CAT tools (Smartling, Lokalise, Phrase, etc.)Terminologia/QA, colaboraçãoMais configuração + custoLocalização de produto/UI em escala
Fórmulas de planilha (Sheets/Excel)Sem ferramentas extrasFácil de autoformatar ou corromper o CSVApenas arquivos pequenos e de baixo risco

Limites e observações

  • Não faça upload de dados sensíveis que você não tem permissão para compartilhar. Se necessário, exporte primeiro um CSV sanitizado.
  • Se o seu sistema requer nomes de cabeçalho específicos, não traduza a linha de cabeçalho.
  • Sempre execute a lista de verificação de QA antes de importar o CSV traduzido.
  • Se estiver usando uma ferramenta online, verifique os limites de upload e os formatos suportados na página da ferramenta.

Passo a passo

  1. Abra a ferramenta

  2. Escolha os idiomas

    • Selecione seus idiomas de destino.
  3. Faça upload do seu CSV

    • Faça upload ou arraste e solte seu arquivo .csv.
    • Se o seu CSV contiver várias colunas de texto, o tradutor irá traduzir o conteúdo mantendo os separadores e aspas seguros.
  4. Baixe o CSV traduzido

    • Salve com um nome claro como products_es.csv.

Melhores práticas para melhores resultados

  • Traduza apenas colunas voltadas para o usuário: títulos de produtos, descrições, strings de UI, notas voltadas para o cliente.
  • Mantenha os códigos estáveis: não traduza status, type, sku, category_id, url, handle.

Método 2 — Google Sheets ou Excel

Este fluxo de trabalho pode funcionar, mas é mais fácil alterar acidentalmente a formatação, delimitadores ou tipos.

Google Sheets (arquivos pequenos)

  1. Importe o CSV

    • Google Sheets → Arquivo → Importar → Upload.
    • Se seus dados aparecerem em uma coluna, escolha o separador correto (vírgula vs ponto e vírgula).
  2. Proteja as colunas “não traduzir”

    • Formate as colunas de ID como Texto simples primeiro (ex.: SKU, id do pedido) para evitar que 00123 vire 123.
  3. Traduza apenas as colunas de destino

    • Use =GOOGLETRANSLATE(A2,"en","es") em uma nova coluna, depois Copiar → Colar especial → Somente valores.
    • Não execute fórmulas de tradução em colunas que contenham URLs, placeholders, códigos ou fórmulas.
  4. Exportar

    • Arquivo → Fazer download → Valores separados por vírgula (.csv) (Google Sheets exporta em UTF‑8).

Excel (Windows) — como importar e exportar UTF‑8 corretamente

Excel é onde os erros de codificação acontecem com mais frequência. Use estes passos para evitar caracteres corrompidos e problemas com delimitadores.

A) Importar CSV sem corromper caracteres

  1. Dados → De Texto/CSV
  2. Na caixa de diálogo de importação:
    • Origem do arquivo / Codificação: escolha 65001: Unicode (UTF‑8) (a nomenclatura pode variar conforme a versão)
    • Delimitador: Vírgula (,) ou Ponto e vírgula (;) para corresponder ao seu arquivo
  3. Clique em Carregar (ou Transformar Dados se precisar forçar colunas de ID como Texto)

B) Exportar como UTF‑8 (e quando usar BOM)

  1. Arquivo → Salvar Como
  2. Para Salvar como tipo, escolha:
    • CSV UTF‑8 (Delimitado por vírgula) (*.csv) (recomendado para texto multilíngue)
    • Se seu sistema de destino rejeitar BOM, exporte UTF‑8 sem BOM usando um script (veja “Processamento em Lote”) ou salve novamente com um editor de código.

Armadilhas comuns

  • Formatação automática: planilhas podem converter IDs como 00123 em 123.
  • Conversão de data: 2026-01-09 pode ser exibido de forma diferente e exportado de maneira inconsistente.
  • Mudança de delimitador: exportações podem mudar para ; dependendo das configurações de localidade.

Se você usar este método, a seção de QA abaixo é obrigatória.

Fluxo de trabalho avançado — Tabela de Tradução

Se o seu CSV for uma mistura de dados “traduzir” e “não traduzir”, crie uma tabela de tradução separada para garantir que a tradução nunca toque em campos sensíveis.

Passo 1: Crie uma tabela de tradução

Crie um novo CSV (ou planilha) como:

row_idfieldsource_textcontexttranslated_text
101product_titleWireless MouseE-commerce product titleMouse Sem Fio
101product_descSilent clicks, 2-year batteryShort descriptionCliques silenciosos, bateria de 2 anos
102product_titleUSB-C ChargerE-commerce product titleCarregador USB-C
102product_descFast charging for phones and tabletsShort descriptionCarregamento rápido para telefones e tablets
103product_titleStainless Steel Water BottleProduct titleGarrafa de Água em Aço Inoxidável
103product_descBPA-free, keeps drinks cold 24hShort descriptionLivre de BPA, mantém bebidas geladas por 24h
104product_titleNoise-Canceling HeadphonesProduct titleFones de Ouvido com Cancelamento de Ruído
104product_descOver-ear, Bluetooth 5.3Short descriptionOver-ear, Bluetooth 5.3

Passo 2: Traduza apenas source_text

Traduza a coluna source_text com o fluxo de trabalho escolhido e coloque o resultado em translated_text. (Um tradutor online compatível com CSV tende a ser mais seguro do que planilhas.)

Passo 3: Mapeie as traduções de volta

Junte por row_id + field e escreva o texto traduzido de volta ao seu conjunto de dados original. Isso garante que IDs, preços e campos de sistema nunca passem por tradução.

Exemplo (Python + pandas)

import pandas as pd

# Dados originais (mantenha os tipos estáveis; trate IDs como strings)
orig = pd.read_csv("products.csv", dtype=str, keep_default_na=False)

# Tabela de tradução após tradução
tt = pd.read_csv("translation_table_es.csv", dtype=str, keep_default_na=False)

# Remodelar para uma linha por row_id (formato wide)
wide = (
  tt.pivot(index="row_id", columns="field", values="translated_text")
  .add_suffix("__translated")
  .reset_index()
)

merged = orig.merge(wide, on="row_id", how="left")

# Escrever de volta (campos de exemplo)
merged["product_title"] = merged["product_title__translated"].where(
  merged["product_title__translated"].ne(""), merged["product_title"]
)
merged["product_desc"] = merged["product_desc__translated"].where(
  merged["product_desc__translated"].ne(""), merged["product_desc"]
)

merged.drop(columns=[c for c in merged.columns if c.endswith(“__translated”)], inplace=True) merged.to_csv(“products_es.csv”, index=False, encoding=“utf-8-sig”)


#### Exemplo (padrão de junção/atualização SQL)

```sql
-- translation_table(row_id, field, translated_text)
-- products(row_id, product_title, product_desc, ...)

UPDATE products p
SET product_title = t.translated_text
FROM translation_table t
WHERE p.row_id = t.row_id
  AND t.field = 'product_title'
  AND t.translated_text IS NOT NULL
  AND t.translated_text <> '';

Processamento em Lote (múltiplos arquivos CSV)

Se você precisa traduzir muitos arquivos CSV, evite etapas manuais em planilhas e use um pipeline repetível:

  1. Padronize as entradas

    • Normalize para UTF‑8 (ou UTF‑8 com BOM se seu importador exigir).
    • Certifique-se de que cada arquivo tenha uma chave estável (row_id / id) para mapeamento.
  2. Gere tabelas de tradução por arquivo

    • Extraia apenas os campos traduzíveis em translation_table_<file>.csv.
    • Mantenha uma coluna source_file se preferir uma tabela combinada para todos os arquivos.
  3. Traduza as tabelas

    • Use um fluxo de trabalho de API ou uma ferramenta compatível com CSV, arquivo por arquivo.
  4. Junte os resultados e exporte

    • Mapeie por row_id + field (e source_file se utilizado).
    • Exporte com a codificação que seu sistema de destino espera.

Loop inicial mínimo (processar muitos arquivos de forma consistente):

for f in ./input/*.csv; do
  base="$(basename "$f" .csv)"
  # 1) extrair tabela de tradução (implemente conforme seu esquema)
  # 2) traduzir translation_table_${base}.csv -> translation_table_${base}_translated.csv
  # 3) juntar e exportar ${base}_translated.csv
  echo "Processado: $base"
done

Checklist de QA Pós-Tradução

Após baixar o CSV traduzido, execute estas verificações antes de importar:

Verificações rápidas

  • Comparar a contagem de linhas (macOS/Linux): wc -l file.original.csv file.translated.csv
  • Verificar a consistência do delimitador abrindo o arquivo em um editor de texto simples e confirmando se os separadores estão iguais.
  • Opcional: verificar a consistência da contagem de colunas com Python:
python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Se você receber um erro de decodificação Unicode, converta o CSV para UTF-8 primeiro, ou tente utf-8-sig:

python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8-sig'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Verificações de estrutura

  • Contagem de linhas inalterada: mesmo número de linhas de dados que o original.
  • Contagem de colunas inalterada: cada linha tem o mesmo número de colunas.
  • Delimitador inalterado: vírgula vs ponto e vírgula consistente com seu importador.
  • Aspas válidas: campos com vírgulas/linhas novas permanecem devidamente entre aspas.

Verificações de integridade dos dados

  • IDs e chaves inalterados: comparar sku, id, row_id, handle.
  • URLs/emails inalterados: sem espaços adicionados, sem domínios traduzidos.
  • Números preservados: preços, quantidades, decimais permanecem os mesmos.
  • Marcadores preservados: {name}, {{count}}, %s, :value permanecem intactos.

Verificações de qualidade da tradução

  • Terminologia consistente: termos-chave de produtos são traduzidos da mesma forma em todas as linhas.
  • Respeito às restrições de comprimento: rótulos de UI não estão muito longos (importante para aplicativos).
  • Sem sobras de idioma misto: escanear por palavras comuns da fonte que deveriam ser traduzidas.

Solução de Problemas Comuns em Tradução de CSV

1) Colunas estão deslocadas após a tradução

Sintomas

  • Seu importador informa “número errado de colunas”
  • Valores aparecem sob os cabeçalhos errados

Causas prováveis

  • Um campo traduzido contém uma aspa não escapada (")
  • Um campo traduzido contém uma vírgula/quebra de linha, mas não está devidamente entre aspas

Correção

  • Certifique-se de que o CSV utiliza as regras corretas de aspas (aspas duplas ao redor dos campos; aspas internas escapadas como "").
  • Retraduza utilizando um fluxo de trabalho compatível com CSV (em vez de traduzir texto CSV bruto).

2) Caracteres corrompidos (mojibake) como ???? ou é

Causas prováveis

  • Codificação incorreta na exportação/importação (UTF‑8 vs legado)

Correção

  • Exporte como UTF‑8.
  • Se estiver usando Excel no Windows, tente UTF‑8 com BOM.
  • Evite copiar/colar manualmente, pois isso pode alterar a codificação.

3) Zeros à esquerda desapareceram (00123123)

Causas prováveis

  • Formatação automática da planilha (Excel/Sheets)

Correção

  • Trate colunas de ID como texto antes de editar/exportar.
  • Prefira traduzir com um fluxo de trabalho compatível com CSV que não altere o tipo dos seus dados.

4) Datas ou decimais mudaram de formato

Exemplos

  • 1,234.56 torna-se 1.234,56
  • 2026-01-09 torna-se 09/01/2026

Correção

  • Não traduza colunas numéricas/de datas.
  • Mantenha os valores legíveis por máquina; localize os formatos de exibição na sua camada de interface, não nos dados brutos.

5) Problema de segurança: Injeção de CSV (fórmulas do Excel)

Se uma célula traduzida começar com =, +, - ou @, ao abrir o arquivo no Excel, ele pode avaliar isso como uma fórmula.

Correção

  • Para CSVs que serão abertos em planilhas, escape células de risco prefixando com uma aspa simples (') ou sanitize durante a exportação.
  • Considere remover caracteres de fórmula iniciais de textos fornecidos por usuários antes da tradução/importação.
  • Referência: https://owasp.org/www-community/attacks/CSV_Injection

FAQ

Como traduzir um CSV sem quebrar as colunas?

Use um fluxo de trabalho compatível com CSV e verifique a estrutura antes de importar:

  • Traduza com um método compatível com CSV (Método 1)
  • Execute as “Verificações rápidas” + checklist de QA para confirmar contagem de linhas/colunas e aspas válidas
  • Se seu CSV mistura campos sensíveis e texto para o usuário, utilize o “Fluxo de Trabalho Avançado — Tabela de Tradução”

Posso traduzir apenas uma coluna em um CSV?

Sim. A abordagem mais segura é criar uma tabela de tradução (row_id + source_text + context), traduzir apenas essa tabela e depois mapear de volta. Isso evita alterações acidentais em IDs e campos numéricos.

Devo traduzir a linha de cabeçalho?

Depende do seu caso de uso:

  • Traduza os cabeçalhos se o CSV for lido por pessoas (relatórios, exportações).
  • Não traduza os cabeçalhos se o seu sistema/importador espera nomes de campos específicos (importações de e-commerce, bancos de dados, aplicativos).

Meu CSV usa ponto e vírgula (;) em vez de vírgulas. Isso é um problema?

Não, mas certifique-se de que sua ferramenta/importador utilize sempre o mesmo delimitador. Muitos locais europeus usam ponto e vírgula por padrão. Uma incompatibilidade é uma razão comum para falhas na importação de CSV.

Como lidar com texto multilinha (quebras de linha) em células?

Células multilinha são permitidas em CSV, mas devem estar devidamente entre aspas. Se o conteúdo traduzido incluir quebras de linha, recomenda-se fortemente um tradutor compatível com CSV para evitar quebras de linha indesejadas.

Ferramentas

  • OpenL CSV Translator Online (exemplo de ferramenta compatível com CSV): https://doc.openl.io/translate/csv
  • Para fluxos de trabalho no Excel: veja também “How to Translate Excel Online”: /how-to-translate-excel-online
  • Para conteúdo em Markdown: “How to Translate Markdown”: /how-to-translate-markdown
  • Se precisar de regras sobre o que não deve ser traduzido: “What Not to Translate”: /what-not-to-translate

Resumo

Para traduzir um arquivo CSV com segurança, preserve a estrutura (delimitador, aspas, codificação) e proteja os campos “não traduzir” (IDs, URLs, placeholders, números). Prefira fluxos de trabalho compatíveis com CSV e, em seguida, verifique com o checklist de QA antes de importar.