Como traduzir um jogo Ren'Py para o português (tutorial completo)
Traduza visual novels Ren'Py para o português com o RuneTranslate — tratando jogos com .rpy soltos, .rpyc compilados e .rpa arquivados, mascarando a marcação, incluindo uma fonte CJK/não-latina e exportando uma tradução que o jogo carrega ao iniciar.
O Ren'Py é o motor baseado em Python por trás da maioria das visual novels ocidentais e japonesas — de pequenas jams do itch.io a títulos comerciais do DLsite. É um dos motores mais limpos de traduzir: o RuneTranslate nunca sobrescreve o script original, ele sobrepõe a tradução por cima para que o jogo permaneça intacto. Este guia percorre a tradução de um jogo Ren'Py para o português (ou qualquer idioma) de ponta a ponta com o RuneTranslate, incluindo as três formas em que um jogo Ren'Py é distribuído — código-fonte .rpy solto, somente compilado .rpyc e arquivado .rpa.
O que você precisa
- RuneTranslate para Windows — gratuito, todos os motores e provedores desbloqueados.
- Uma pasta de jogo Ren'Py. Este é o diretório que contém o
.exedo jogo mais uma subpastagame/(que guarda arquivos.rpy,.rpyce/ou.rpa). - Um idioma de destino — português, inglês, espanhol, francês, alemão, russo, chinês, italiano, turco, vietnamita e mais de 20 outros.
- Um provedor de tradução. O Google Translate gratuito funciona de imediato; o DeepL tem um tier gratuito; o OpenAI, o Anthropic, um modelo local (Ollama / LM Studio) e qualquer API compatível com OpenAI exigem sua própria chave. As visual novels têm muitos diálogos e são sensíveis ao tom, então um LLM (OpenAI / Anthropic) ou o DeepL geralmente lê melhor.
Passo 1: Abra a pasta do jogo
Inicie o RuneTranslate, clique em Novo projeto e aponte-o para o diretório do jogo Ren'Py (a pasta com o .exe, ou a pasta interna game/). A detecção de motor roda automaticamente e reconhece o projeto como Ren'Py no momento em que vê uma árvore game/.
Como o texto é lido depende do que o desenvolvedor distribuiu:
- Jogos com código-fonte — scripts
.rpysoltos emgame/. O RuneTranslate os analisa diretamente. Este é o caso ideal. - Jogos somente compilados — apenas bytecode
.rpyc. Um sidecar embutido unrpyc os descompila de volta para.rpylegível primeiro, e então analisa normalmente. - Jogos arquivados — scripts empacotados em um arquivo
.rpa. O RuneTranslate o descompacta com um rpatool modificado e vendorizado em um espaço de trabalho por projeto em%APPDATA%/RuneTranslate/renpy-workspace/<projectId>/, descompila, e então analisa. Nosso fork do rpatool detecta automaticamente chaves de arquivo ofuscadas eRPA-x.ypersonalizadas de fornecedores, então ele abre muitos arquivos que ferramentas upstream recusam.
Sua pasta de jogo original nunca é modificada.
Passo 2: Como o texto do Ren'Py é extraído
O RuneTranslate extrai as instruções say (diálogos), as escolhas de menu e o texto de interface traduzível do script e os lista no editor, agrupados por arquivo. A marcação de texto do Ren'Py — {b}, {color=#fff}, esperas {w}, itálicos {i} e interpolações de variável no estilo [player_name] — é mascarada atrás de placeholders numéricos [[R#]] antes de qualquer coisa chegar ao provedor, e então restaurada na saída. A máquina nunca vê as tags, então não pode estragá-las, descartá-las ou traduzi-las.
Passo 3: Traduza
Escolha um provedor e rode. Para uma visual novel de tamanho médio (~8.000–15.000 linhas) no tier Supporter:
- OpenAI / Anthropic — os melhores para voz de personagem, piadas e falas estilizadas; cerca de alguns dólares em custo de API para um jogo completo. O editor mostra uma estimativa de tokens + USD antes de você se comprometer.
- DeepL — rápido e limpo para narração; o tier gratuito cobre 500 mil caracteres/mês.
- Google Translate gratuito — $0, bom para menus e linhas curtas, mais fraco em diálogos.
Coloque seu elenco e termos recorrentes no glossário logo de início para que cada cena renderize os nomes de forma idêntica — veja o Glossário 101. No tier gratuito a tradução é levemente limitada — cerca de 2x mais lenta nos provedores de IA, menos nos scrapers gratuitos (menor concorrência, lotes menores, uma breve pausa entre lotes) — com qualidade de saída idêntica. Os tiers pagos rodam em velocidade máxima e adicionam memória de tradução e roteamento de provedores.
Passo 4: Revise no editor
Cada linha chega à tabela ao lado de sua origem — japonês por padrão, ou qualquer idioma que você tenha definido para o projeto (chinês, coreano, inglês e mais). Edite inline qualquer coisa que a máquina errou (salva ao desfocar ou com Ctrl+Enter), use localizar e substituir para um termo que você renomeou, ou rode o refinador por IA opcional para uma revisão de segunda passagem com reconhecimento de contexto. Como os diálogos do Ren'Py são longos, é aqui que acontece o polimento.
Passo 5: Exporte uma build jogável
Clique em Exportar. O RuneTranslate não depende de o Ren'Py preferir um .rpy solto em tl/ — isso só funciona para texto identificado por ids de diálogo, que jogos compilados não fornecem de forma confiável. Em vez disso, ele coloca alguns arquivos em game/ e aplica a tradução em tempo de execução:
rt_translations.json— um mapa de texto-de-origem → tradução para cada linha de diálogo e menu.zzz_runetranslate_language.rpy— um pequeno hook de tempo de execução que instala umconfig.say_menu_text_filter. Ele faz a correspondência de cada linha que o jogo está prestes a exibir com o mapa e troca pela sua tradução, e força o idioma ativo do jogo para o traduzido, para que o texto de tela e interface acompanhe.tl/translated/translation.rpy— guarda apenas as strings de interface / tela_()(botões, menus, tooltips), que o Ren'Py de fato resolve de forma confiável por seu próprio mecanismo.- Uma fonte embutida mais
zzz_runetranslate_font.rpyquando o idioma de destino precisa de uma — veja a nota sobre não-latino abaixo.
Rode o .exe do jogo e ele joga no seu idioma de destino, com os scripts e arquivos originais intocados. Para voltar, remova os arquivos que o RuneTranslate adicionou — rt_translations.json, zzz_runetranslate_language.rpy, a fonte embutida e seu .rpy, e tl/translated/.
Idiomas não-latinos
A maioria dos jogos Ren'Py distribui uma fonte apenas latina, então chinês, coreano, japonês, tailandês ou árabe apareceriam como quadradinhos em branco. Quando você mira em um desses, o RuneTranslate inclui uma fonte adequada (NanumGothic / Noto Sans) e roteia cada fonte que o jogo usa pelo config.font_replacement_map do Ren'Py, para que o texto traduzido apareça corretamente sem editar os próprios assets do jogo.
Limitações conhecidas
- Arquivos padrão RPA-2 / RPA-3 / RPA-3.2 / RPA-4.0 e arquivos comuns ofuscados por fornecedores abrem automaticamente; um contêiner genuinamente fora do padrão ou uma chave mantida externamente pode não descompactar.
- Texto embutido em imagens (logos de título, interface desenhada à mão, legendas de CG) é trabalho de pixel e não é traduzido — fora do escopo da tradução automática.
- Telas muito scriptadas que constroem strings em tempo de execução a partir de variáveis podem precisar de uma passagem rápida de correção manual no editor.
Por que isto é mais fácil do que o jeito antigo
A rota manual significava descompilar .rpyc à mão, rodar o rpatool no arquivo, e então ou traduzir o código-fonte no lugar (e quebrá-lo de novo na próxima atualização do jogo) ou escrever à mão os blocos tl/ linha por linha — e ainda brigar com fontes faltando em idiomas não-latinos. O RuneTranslate faz a cadeia de descompilar + descompactar + extrair + hook-de-tempo-de-execução em alguns cliques, mantendo o editor aberto para você controlar as palavras.
Veja a página do motor Ren'Py para a lista completa de recursos, leia o guia de visual novels Kirikiri para um motor de VN diferente, ou baixe o RuneTranslate e experimente em um jogo real.
Pronto para experimentar o RuneTranslate?
O plano gratuito libera todos os motores + todos os provedores de tradução. O plano Supporter ($3/mo) libera velocidade total.
Baixar para Windows
