terça-feira, 1 de novembro de 2011

Como traduzir Jogos Java

Esse breve tutorial é feito com o conhecimento básico em tradução, o que já serve para a tradução de muitos jogos java para celular, será usado conteúdo retirado de outros sites para complementar as informações (fontes citadas no final).

----------------------------------------------

Programas necessários :
Antes de começar, veja se você tem esses programas ou similares (caso não tenha, baixe-os clicando nos links abaixo)
Em alguns casos, também podemos usar o Bloco de Notas do seu sistema operacional.
Será usado nesse tutorial os programas descritos acima, mas use o de sua preferência.
Note que alguns Editores Hexadecimais tem formas de exibição dos caracteres um pouco diferente (explicado mais a frente);
----------------------------------------------

Extraindo o Jogo :
Essa é a parte mais fácil, simplesmente selecione o jogo que deseja traduzir (com extensão .JAR), dê um clique direito e selecione "Extrair para XxX", como exemplo da imagem (imagem 01). Em seguida, vá a pasta que foi criada.
Achando o(s) arquivo(s) de texto :
Em alguns jogos será fácil de achar o arquivo (ou OS arquivos) que deve(m) ser traduzido(s). Simplesmente pelo fato de estarem em ".txt", mas na maioria das vezes, as empresas adoram usar extensões diferentes como ".lang" (Fishlabs), ".bin" (EA) ".package" ou somente letra ou número sem extensão(G@m3l0Ft) e diversas outras extensões.
Para começar, usaremos o jogo Sven004, após extrair ele você verá o arquivo "text.txt" que é o arquivo onde estão os textos.
Agora, veja os textos que podem ser traduzidos, se aceita acentuação e MÃOS-A-OBRA !
Nesse texto, note que "^" é usado para mostrar algo e não deve ser removido do texto. Você pode mudar o lugar dele, mas deve colocar no texto (imagem 02).


Lembre-se: Traduza uma certa quantia de textos e salve. Isso é como modo de previnir que perca tempo traduzindo muito texto e depois acabar dando erro.
----------------------------------------------

Modos de Tradução :
Usando o Bloco de Notas
Em alguns jogos, os textos podem ser facilmente editados usando o simples Bloco de Notas do sistema operacional (já visto acima), devendo ver os seguintes detalhes :
  • O jogo aceita acentuação ?
  • Aceita todos caracteres ? (como : ã, õ, ç, ...)
  • Cada texto está numa linha separada ?
  • Há código de cores nos textos ou para dar espaço ?
Nem todos jogos aceitam acentuação, por isso, pegue uma palavra e acentue por exemplo: NEW GAME tente COMEÇAR para saber se o jogo aceitará o Ç, você também pode tentar usar outros como Õ, Ã, É, Ç para ver se aceita todos caracteres. Tenha cuidado com as linhas, em alguns textos, o fato de cada texto possuir uma linha deve ser respeitada pois se não haverá erro ao executar o jogo.
Os jogos tambem podem ter códigos de cores ou nova linha e etc .. Por exemplo : Jogos da G@m3l0Ft usam /H e /h ou /0 e outros para colorir os textos. Jogos como da Firemint e outras produtoras menores, usam /n para dar uma nova linha.
Se você abrir o arquivo e ele estiver com os textos tudo junto ... siga ao próximo passo. :)
Usando o Editor de Hexadecimal
Podemos usar o bloco de notas para traduzir o "text.txt", mas agora vamos tentar traduzir de "outra forma".
Abra o text.txt com a opção "Abrir com..." e escolha o "XVI32.exe". Ao abrir o arquivo você verá dessa forma (Imagem 03).
O lado ESQUERDO do editor representa o código Hexadecimal, já o lado DIREITO representa os textos, alterando de um lado, você automaticamente alterará o outro lado.
Note que na 3ª imagem, há umas linhas vermelhas, elas mostram do lado "Hexa" (Esquerdo) o código 0D0A, esse código aperece do lado "Texto" (Direita) aparece como 02 espaços.
Primeiro vá até a opção TOOLS e veja se a opção Overwrite está marcada. Em seguida vá ao lado dos textos e edite os textos. Mas devemos ter em mente que a string 0D0A não deve ser apagada, mas e então como aumentar os textos ?
Vá em EDIT e em Insert String, insira o texto e aperte ENTER (ou clique em OK) (Imagem 04).
Quem gosta de apanhar é sadomasoquista, então use o Bloco de Notas que é mais fácil e rápido para esse arquivo.
Agora vamos pegar um arquivo que deve usar o editor Hexa, usaremos o arquivo bin.all do jogo Saints Row 2, localize nele (apertando CTRL+F) o texto "English" (Imagem 05) e veja que antes desse texto há dois espaços vazios. Olhe do lado Hexa e veja que temos o código 0007.
A primeira parte desse hexa é o "00", isso significa que ali começa o texto (por assim dizer, para ficar mais fácil de entender) e o "07" significa a quantia de letras que virá depois, nesse caso, ENGLISH - que tem 07 letras. Mas e como colocar o texto PORTUGUÊS ??
Veja que a palavra PORTUGUÊS pode conter 9 ou 10 caracteres dependendo da limitação do jogo. Agora você deverá saber se o jogo vai aceitar a acentuação normal ou em Hexadecimal. Como fazer isso ?
Simples. No local de English, coloque Inglês (só para TESTAR). Compacte o jogo e teste, se abrir e aparecer o "ê", beleza, se não aparecer ou o jogo não iniciar, vamos ao método de acentuação Hexadecimal, ou seja, Português terá 10 caracteres !
Faremos o seguinte: vá onde está os dois espaços vazios e aperte a tecla "TAB" do teclado (acima do Caps Lock) para trocar de lado exatamente onde aparecerá o 0007. Troque para 000A e aperte TAB novamente para voltar ao lado do texto ... Mas por que diabos 000A ? 0A significa que o que vir a seguir dele terá 10 caracteres (Veja a tabela mais abaixo). Voltando ao texto .. Se você apertou TAB após trocar para 000A, você estará com a seleção no 2º quadro vazio antes da palavra. agora vá trocando o English por Portugu e PARE ! Ai já foram 07 caracteres e agora?
Vá em EDIT, Insert String no modo "Text String" escreva isso: XXs. Mas por que essa baboseira ?
Ao dar ENTER (ou apertar o ok), você notará que o jogo inseriu os 3 caracteres, ficando com 10 ao invés dos 07 de antes.
Tá, mas agora ficou PortuguXXs, que coisa é essa ? Volte a seleção até o 1º dos "X" e aperte TAB (indo ao lado do Hexa) e escreva C3AA, isso deixará do lado texto isso: ê, correto ? Então perfeito ! É assim que ficará: Português (10 Caracteres !). Mas por que C3AA ? Veja a tabela mais abaixo.
Mais abaixo estarão as tabelas de códigos das letras e números Hexa.
Para tirar a prova, vá até onde está o 000A e olhe na parte de baixo do editor, como mostra a imagem 06. (Imagem 06).
----------------------------------------------

Algumas limitações :
Algumas empresas, principalmente a G@m3L0fT (e acho que a única ¬¬), coloca seus textos de modo "unidos venceremos" ou seja, algo do tipo assim : BACKMENUHELPOPTIONS. O que fazer nesse caso ? Como eu disse, esse tutorial é básico .. não entra nessa parte .. pois ai envolve ponteiros e outras coisas mais ... Mas você pode traduzir assim mesmo, mas não ficará uma tradução boa ..
Textos como os da Fishlabs, por exemplo pode conter algo do tipo : 0104, isso significa que ali possui mais de 300 caracteres. Durante os textos podem conter a string 0A sozinha, que significa que é uma nova linha, entre outros .. Mas isso são casos particulares, então cada jogo deve ser testado várias vezes antes de concluir a tradução.
----------------------------------------------

Caracteres mais comuns :
Veja aqui os caracteres mais comuns usados nos arquivos.
- A -
À= c380 Á= c381 Â= c382 Ã= c383 à= c3a0 á= c3a1 â= c3a2 ã= c383
- C -
Ç= c387 ç= c3a7
- E -
È= c388 É= c389 Ê= c38a è= c3a8 é= c3a9 ê= c3aa
- I -
Í= c38d í= c3ad
- O -
Ó= c393 Ô= c394 Õ= c395 ó= c3b3 ô= c3b4 õ= c3b5
- U -
Ú= c39a ú= c3ba
----------------------------------------------

Tabela de números de caracteres :
Veja a tabela aqui
----------------------------------------------

Nota Final :
Esse é o básico (bem básico) da tradução de games de celular em Java. É possível usar outros programas e métodos de tradução. Caso queira maiores informações dê uma olhada nos sites das fontes.
Tutorial totalmente escrito por JPeres. Se copiar, pelo menos dê os créditos.
Se você achar algo importante e útil por favor, avise-nos e colocaremos aqui. :)
----------------------------------------------

Fontes :
Gamevicio (gamevicio.com.br)
CDJinfo (cdjinfo.com.br)
JPeres [ :P ]

0 comentários:

Postar um comentário