Mini guida alla traduzione.

Versione 1.0 beta

di Macchianera

Prima di iniziare questa piccola guida è necessario premettere che ogni traduzione di un gioco rappresenta un caso a sé. Infatti a seconda del produttore o addirittura della versione, possono variare i formati di criptazione dei files ed altre cose. Affronteremo quindi l'argomento da un punto di vista generico, andando a spiegare il minimo necessario per tradurre in italiano un'avventura grafica che supporremo non criptata.

Come prima cosa ci serve il gioco. (Volevo fare una battuta, su... ridere!)
Essenzialmente gli strumenti che dovremo utilizzare sono un editor esadecimale (se ne trovano tranquillamente freeware nella rete) ed un patch maker. L'editor esadecimale è un programma che apre i files guarda caso... in codifica esadecimale; vi serve per modificare i testi in modo corretto. Un patch maker è un programmino che nelle distribuzioni più semplici confronta un file (quello originale) con un altro (quello tradotto da voi) e genera un file eseguibile (exe o com a 16 o 32 bit) che contiene le modifiche da apportare al file originale.
Quando la patch viene attivata, traduce il file della versione originale in italiano (tenendo traccia di quello che ha salvato dal confronto con la vostra traduzione avvenuto al momento della sua creazione).

Iniziamo con l'editor. 
Avviate l'editor ed incominciate a cercare fra i files del gioco che volete tradurre quelli che contengono il testo. Solitamente i testi sono contenuti nei files di archivio, quindi escludete quelli con estensione exe o com, stesso discorso vale per i drivers delle schede audio (lo so che questo è scontato ma lo dico lo stesso). All'apertura di un qualsiasi file, dopo averlo visualizzato in modalità esadecimale (nel caso in cui l'editor supporti anche altre modalità) vi apparirà una schermata simile a questa:

03.LFD R 0000000F -------- 14602 ¦ Hiew 6.01(c)SEN 
00000000:
00000010:
00000020:
00000030:
00000040:
00000050:
00000060:
00000070:
00000080:
00000090:
000000A0:
000000B0:
000000C0:
000000D0:
000000E0:
000000F0:
00000100:
00000110:
00000120:
00000130:
00000140:
00000150:
00000160:
A0 2F 00 34-40 01 90 00-00 00 F9 00-CC 29 1C 00
1C 00 1C 00-07 43 00 00-00 3C 2E 3D-2E 6B 2C 6B
2C 6B 2C 6B-2C 6B 2C 6B-2C 6B 2C 5B-2D 04 2D 21
2D 3E 2D 7F-2D 99 2D 29-2E C8 6D 2F-C9 7E 2F CA
8F 2F 00 07-29 00 3F 00-29 00 3F 00-79 00 3F 00
79 00 3F 00-01 00 9D 00-47 00 9D 00-47 00 7B 00
3F 00 7B 00-3F 00 00 00-9F 00 47 00-9F 00 47 00
F1 00 47 00-F1 00 47 00-00 00 DC 00-49 00 DC 00
49 00 E3 00-5E 00 E3 00-5E 00 00 00-16 01 3E 00
16 01 3E 00-F4 00 47 00-F4 00 47 00-01 00 9D 00
48 00 9D 00-48 00 8A 00-52 00 8A 00-52 00 00 00
8A 00 54 00-8A 00 54 00-75 00 67 00-75 00 67 00
01 00 01 06-01 FF 00 00-00 02 04 02-05 06 05 FF
00 01 01 03-03 03 04 04-04 05 06 05-FF 00 02 02
04 06 02 FF-00 03 02 05-06 02 FF 00-01 01 02 04
02 06 06 06-FF 00 05 05-FF D3 28 52-00 44 01 F9
01 D6 02 EC-03 E1 04 C3-05 E1 06 0E-08 4B 09 AE
0A 30 0C 7B-0D 92 0E C2-0F 00 11 53-12 BE 13 22
15 46 16 FA-16 C6 17 AD-18 85 19 68-1A 5C 1B 46
1C 2A 1D C8-1D 44 1E 06-1F E9 1F BE-20 DB 21 1C
23 25 24 2C-25 46 26 40-27 26 28 00-09 18 19 10
11 00 0D D1-18 21 00 36-11 00 09 21-29 21 19 21
10 11 20 51-10 11 20 11-20 21 00 0D-19 11 82 11
á/ 4@É ¨ ¦)
  C <.=.k,k
,k,k,k,k,k,[--!
->--Ö-).+m/+~/-
Å/ ) ? ) ? y ?
y ?  Ø G Ø G {
? { ? ƒ G ƒ G
± G ± G _ I _
I Ò ^ Ò ^ >
> ¶ G ¶ G  Ø
H Ø H è R è R
è T è T u g u g
   
 
  
  Ë(R D¨
Íýß+ßK «
0 {Æ-¤ S¥"
§F·ã¡àh\F
*+DÚ¥ _!
#%$,%F&@'&( 
 Ð! 6 !)!!
 Q  ! é

1 2PutBlk 3Edit 4Mode 5Goto 6 7Search 8Header 9Files 10Quit

La colonna più a sinistra è l'indentatura della pagina e per ora non vi interessa, le parti che dovrete modificare sono quella centrale e quella a destra. C'è una corrispondenza diretta fra le coppie alfanumeriche che si possono notare al centro e i singoli caratteri della colonna destra, infatti ciascuna coppia è il codice in forma esadecimale del testo nella colonna posta a fianco. Come avrete notato da questa immagine o da quella del vostro editor, per ora di testi non se ne vedono ed infatti dovete cercarli all'interno del file, per farlo scorrete l'elenco fino a trovare del testo sensato. (Lo so, ci sono anche altri metodi... a seconda dell'editor cambiano e sono più o meno convenienti... anche con l'editor dell'esempio si può usare qualche "trucco", ma come ho premesso questo tutorial è estremamente generale e non specifico.). Ed ecco qua sotto del testo riconoscibile (nel caso riportato si sta traducendo da una versione francese.).

03.LFD R 000038BA -------- 37732 ¦ Hiew 6.01 (c)SEN
00003750:
00003760:
00003770:
00003780:
00003790:
000037A0:
000037B0:
000037C0:
000037D0:
000037E0:
000037F0:
00003800:
00003810:
00003820:
00003830:
00003840:
00003850:
00003860:
00003870:
00003880:
00003890:
000038A0:
000038B0:

00 AE 02 80-14 02 04 0F-45 63 6F 75-74 65 2D 6D
6F 69 2C 20-75 6E 65 20-66 6F 69 73-20 70 6F 75
72 20 74 6F-75 74 65 2C-20 74 75 20-6E 27 61 73
20 72 69 65-6E FF 01 85-20 66 61 69-72 65 20 69
63 69 2E 00-43 00 40 01-00 78 00 40-24 01 29 00
AE 02 80 14-03 04 0F 45-6E 63 6F 72-65 20 75 6E
65 20 66 6F-69 73 20 73-6F 75 73 20-6C 61 20 6C
65 6E 74 69-6C 6C 65 2E-00 80 68 00-00 D0 28 00
00 F6 FF 0A-D1 FF AE 02-80 14 03 04-0F 53 69 20
71 75 65 6C-71 75 27 75-6E 20 74 65-20 76 6F 69
74 20 69 63-69 2C 20 6F-6E FF 01 76-61 20 6E 6F
75 73 20 66-61 69 72 65-20 6E 6F 74-72 65 20 66
88 74 65 2E-00 AE 02 80-14 03 04 0F-54 75 20 6E
27 61 73 20-72 69 65 6E-20 76 75 2C-20 64 27 61
63 63 6F 72-64 2E FF 01-41 6C 6C 65-7A 2C 20 44
45 43 41 4D-50 45 21 00-18 94 01 14-02 04 00 A0
00 98 00 0F-4A 65 20 6E-27 65 6E 20-63 72 6F 69
73 20 70 61-73 20 6D 65-73 20 79 65-75 78 2E 00
AE 02 80 0A-D0 FF 14 03-04 0F 54 75-20 65 73 20
65 6E 63 6F-72 65 20 6C-85 21 00 AE-02 80 14 02
04 0F 49 6C-20 76 61 20-6D 65 74 74-72 65 20 6E
6F 74 72 65-20 65 6D 70-6C 6F 69 20-64 75 20 74
65 6D 70 73-20 65 6E 20-6C 27 61 69-72 21 00 AE
«Ƕ¤Ecoute-m
oi, une fois pou
r toute, tu n'as
 rien à faire i
ci. C @ x @$)
«Ƕ¤Encore un
e fois sous la l
entille. Çh  ð(
 ÷  Ð «Ƕ¤Si
quelqu'un te voi
t ici, on va no
us faire notre f
ête. «Ƕ¤Tu n
'as rien vu, d'a
ccord. Allez, D
ECAMPE! ö¶ á
 ÿ ¤Je n'en croi
s pas mes yeux.
«Ç 𠶤Tu es
encore là! «Ƕ
¤Il va mettre n
otre emploi du t
emps en l'air! «

1 2PutBlk 3Edit 4Mode 5Goto 6 7Search 8Header 9Files 10Quit

Adesso che avete trovato il testo potete iniziare a tradurre, una cosa essenziale da non scordare mai è che il numero di caratteri utilizzati per scrivere la traduzione non deve superare quello dei caratteri presenti nella versione originale, in caso contrario il gioco, dopo tanta fatica traduttoria, al momento dell'avvio vi darà un messaggio di errore che non sarà possibile rattoppare in nessun modo.

03.LFD R 000038BA -------- 37732 ¦ Hiew 6.01 (c)SEN
00003750:
00003760:
00003770:
00003780:
00003790:
000037A0:
00 AE 02 80-14 02 04 0F-45 63 6F 75-74 65 2D 6D
6F 69 2C 20-75 6E 65 20-66 6F 69 73-20 70 6F 75
72 20 74 6F-75 74 65 2C-20 74 75 20-6E 27 61 73
20 72 69 65-6E FF 01 85-20 66 61 69-72 65 20 69
63 69 2E 00-43 00 40 01-00 78 00 40-24 01 29 00
AE 02 80 14-03 04 0F 45-6E 63 6F 72-65 20 75 6E
«Ƕ¤Ascoltami
una volta per tu
tte, tu non hai
nulla da fare qu
i. C @ x @$)
«Ƕ¤Ancora un

Osservate la parte evidenziata del testo... lo spazio vuoto ed il quadratino corrispondono al comando di a capo, infatti la frase apparirà in questo modo: 

Ascoltami una volta per tutte, tu non hai nulla
da fare qui.

Il codice che corrisponde al comando di a capo, come evidenziato in figura, è FF 01, dove FF genera uno spazio nullo che indica al programma che il simbolo successivo è un istruzione da eseguire e non un testo da stampare, (quindi ricordatevi che per inserirlo dovete scrivere FF in esadecimale, e non premere spazio nella parte del testo a destra, che non è la stessa cosa.), e 01 è il codice identificativo della funzione a capo. Tutto questo discorso sul comando di a capo è valido solo per le avventure Lucas (grazie DK!). Per ogni diversa traduzione dovrete cercare di capire quali sono i comandi di impaginazione, magari agevolandovi dalla presenza di caratteri anomali in mezzo a frasi che da sé hanno un senso compiuto o guardando al momento dell'esecuzione dove le frasi vengono troncate.

Detto questo, siete quasi a cavallo... gli unici problemi che si possono presentare adesso sono eventuali parole o espressioni che non possono essere tradotte in italiano per insufficiente numero di caratteri disponibili. Nel caso delle espressioni, potete cercare di interpretare il testo a modo vostro, nel caso di parole singole... (es. Key = Chiave) beh.. qui il discorso si complica. Le soluzioni al problema variano a seconda del gioco che state traducendo, e quasi sempre comportano l'impiego di rischiose operazioni di manipolazione del file in cui è contenuto l'indice degli indirizzi. Per ora l'unico consiglio che posso darvi per non incorrere troppo di frequente in questi problemi, è quello di tradurre dalle versioni già localizzate in lingue di radice latina, quindi il Francese o lo Spagnolo, che hanno un vocabolario simile all'italiano e che sono più facilmente adattabili. A questo punto si tratta di tradurre i testi in italiano, quindi... al lavoro!!!

Creiamo la Patch
Bene, avete tradotto almeno un file? (E' una domanda retorica, non mi aspetto una risposta.) Ora dovete testare il vostro lavoro... sostituite il file originale con quello da voi tradotto nel gioco ed avviate il programma, se tutto funziona bene, il primo passo è compiuto. Ora dovete rendere la vostra opera distribuibile, per farlo procuratevi un patch maker (la sezione strumenti di questo stesso sito fa al caso vostro...), esistono diversi tipi di patch maker, ma il loro funzionamento è più o meno questo: si danno in pasto al programma il file originale ed il file modificato, questi li confronta e genera un file eseguibile in cui vengono segnate le differenze (nel vostro caso la patch avrà il compito di sostituire all'indirizzo xxxxx il testo yyyyy con il testo zzzzz).
A questo punto avete quasi tutto, vi manca solo una buona dose di pazienza... Buon lavoro!