Se avete giocato a Final Fantasy X o al suo seguito X-2 potrebbe esservi utile questo piccolo programma di traduzione Albhed.
Buongiorno a tutti, se avete giocato a Final Fantasy X o Final Fantasy X-2 non potete non conoscere gli Albhed, riconoscibili per la loro lingua, a prima vista incomprensibile.
Un mio amico mi ha chiesto se era possibile creare un traduttore bidirezionale Italiano - Albhed, dandomi i parametri su cui era basata questa "lingua". La lingua Albhed si basa su un sistema simile al ROT-13 infatti ogni lettera nel linguaggio Albhed corrisponde ad un'altra lettera nell'Italiano. Con l'uso di un dizionario ed un po' di espressioni regolari è possibile costruire un traduttore veloce con pochissime righe di codice.
Ecco il codice completo:
#!/usr/bin/env python
import re
#Il dizionario principale Italiano -> Albhed
sys={"a":"y","b":"p","c":"l","d":"t","e":"a","f":"v","g":"k","h":"r","i":"e","j":"z","k":"g","l":"m","m":"s","n":"h","o":"u","p":"b","q":"x","r":"n","s":"c","t":"d","u":"i","v":"j","w":"f","x":"q","y":"o","z":"w"," ":" "}
#Perchè faticare per riscrivere il dizionario? Facciamolo fare a Python
sys2={sys[x]:x for x in sys}
# ---- Inizio del programma ----
print "albhed Translator - By Penaz"
valid=False
global ch
while (not valid):
print 90*"-"
print "1) Italiano -> Albhed"
print "2) Albhed -> Italiano"
print "3) Esci"
print ""
ch=str(raw_input("Inserire l'operazione da effettuare: "))
try:
ch=int(ch)
if ch==1 or ch==2 or ch==3:
valid=True
except:
print "Opzione non valida"
if ch!=3:
string=str(raw_input("Inserire la frase da tradurre: ")).lower()
s2=""
print ""
if ch==1:
for x in string:
if re.search("\W",x): #Trova tutti i caratteri che non sono lettere
s2+=x #E attaccali
else:
s2+=sys[x] #Altrimenti traduci
print "Traduzione: " +s2
elif ch==2:
for x in string:
if re.search("\W",x):
s2+=x
else:
s2+=sys2[x]
print "Traduzione: " +s2
elif ch==3:
exit()
Questo programma è estremamente grezzo, ma fa il suo lavoro.
Buon Divertimento a tutti!
Saluti e alla prossima!
Penaz