Com esse projeto você vai conseguir traduzir automaticamente todos os textos de um arquivo JSON utilizando Python e deep-translator, preservando a estrutura original do arquivo.
- Python
- Deep Translator (Dê preferência a versão
1.11.4)
- Tradução automática utilizando
deep-translate(Google Tradutor). - Funciona com arquivos
JSONem diversos idiomas, e traduz para o Português ou a língua que você definir.
git clone https://github.com/IsacFreitaas/traduzir-json-python.gitpip3 install -r requirements.txt- Então execute:
python3 main.py nome_do_arquivo.json- Será criado:
nome_do_arquivo_traduzido.json- 1º: abrir o
JSON; - 2º: percorrer todos os
textos; - 3º: traduzir apenas os valores do tipo
string; - 4º: manter números, listas, booleanos e toda a estrutura exatamente iguais;
- 5º: salvar um novo
JSON.
Por exemplo, suponha que temos um arquivo assim:
{
"menu": {
"play": "Play",
"settings": "Settings",
"exit": "Exit"
},
"dialogues": [
{
"name": "John",
"text": "Hello! How are you?"
},
{
"name": "Mary",
"text": "I'm fine!"
}
],
"version": 1,
"fullscreen": true
}Depois do script:
{
"menu": {
"play": "Jogar",
"settings": "Configurações",
"exit": "Sair"
},
"dialogues": [
{
"name": "John",
"text": "Olá! Como você está?"
},
{
"name": "Mary",
"text": "Estou bem!"
}
],
"version": 1,
"fullscreen": true
}Executando:
python3 main.py exemplo.jsonGera:
exemplo_traduzido.jsonNem todo .json pode ser traduzido dessa forma. Entenda melhor:
Existem basicamente três casos:
Quando o JSON é apenas um arquivo de localização, por exemplo:
{
"play": "Play",
"save": "Save",
"load": "Load"
}ou
{
"dialog": {
"npc1": "Welcome!",
"npc2": "See you later!"
}
}Esse tipo é ideal.
Quando existem códigos misturados com texto:
{
"text": "<color=red>Hello!</color>"
}O tradução pode alterar a marcação ou a posição das tags, causando problemas.
Quando o JSON contém identificadores internos:
{
"id": "enemy_boss_01",
"animation": "walk_left",
"script": "attack_player",
"dialog": "Hello!"
}E você quer traduzir apenas:
Hello!e não
enemy_boss_01
walk_left
attack_playerEntão então a tradução do JSON provavelmente impedirá seu uso: deixará de funcionar. Porém, lembre-se que cada caso é único.
Consciente disso, futuramente melhorarei esse projeto para uma versão mais completa, que seria justamente uma que traduz apenas determinados campos (chaves) - como "text", "dialog", "description", "title" e "message" - ignorando IDs, nomes de arquivos e chaves técnicas. Isto tornará este script muito mais seguro para arquivos de localização que são comumente usados.
Estudante de Ciência de Dados e Inteligência Artificial.
🔴 Youtube: Isac Zeitgeist (Clique aqui)
Insta: @isaczeitgeist (Clique aqui)
Tiktok: @devisaczeitgeist (Clique aqui)
Obrigado pela atenção!

