Ako me nesto nervira kod izrade aplikacija, to su PREVODI NA VISE JEZIKA!!
ja sam recimo na ovom sajtu
www.nutrilans.com pretvorio SVAKI text objekat u movieClip sa vise fejmova u sebi - onoliko koliko jezika i prevoda imam. i svaki na sebi ima kôd:
Code:
onClipEvent (load) {
_root.registracija(this);
}
onClipEvent (unload) {
_root.brisanje(this);
}
A u _root-u se nalaze te funkcije:
Code:
// ovo se poziva SA text objekata prevoda onog momenta kada se pojave na ekranu
function registracija(ovo, i:Number) {
ovo.gotoAndStop(aktuelniJezik); // "aktuelniJezik" je number - broj frejma na kojem se nalazi odgovarajuci jezik
for (i = 1; i <= brojElemenata; i++) {
if (objektiZaPrevod[i - 1] == ovo) {
i = 0;
break; // objekat se vec nalazi u ovom array-u
}
}
if (i) {
brojElemenata = objektiZaPrevod.push(ovo); // ako ga nema u array-u elemanata, dodaj ga
}
}
// ovo se poziva sa text objekata sa vise jecikih frejmova u sebi, onog trenutka kada se "sklone sa ekrana"
function brisanje(ovo, i:Number) {
// ovo dole radi po principu: za svaki element sa "number" ID-om u "objektiZaPrevod", uradi sledece
for (i in objektiZaPrevod) {
if (objektiZaPrevod[i] == ovo) { // pronadji taj element u array-u
objektiZaPrevod.splice(i,1); // izbaci taj element iz Array-a
brojElemenata--; // smanji broj elemenata (globalna promenljiva)
}
}
}
i svaki put kad neko klikne na promenu jezika:
Code:
// ova funkcija prebacuje sve vidljive objekte (iz prevod-array-a) na frejm za odredjeni jezik
// treba joj predati parametar "frejm" (redni broj jezika-prevoda)
function promeniJezik(frejm, i:Number) {
aktuelniJezik = frejm;
// ovo dole radi po principu: za svaki "Number" elementa u objektiZaPrevod, uradi...
for (i in objektiZaPrevod) {
objektiZaPrevod[i].gotoAndStop(frejm);
}
}
Kao sto vidis, nista lakse ;)
Ovaj princip je do jaja jer sve radis u jednom SWF-u i kakvu god promenu da napravis u tom fajlu, ne moras da menjas to isto i u ostalim SWF-ovima koji su uradjeni na drugim jezicima. Pored toga, korisnik ne mora da ceka da se ucita drugi swf nego "odma dobije rezultat".
A pritom cekam prevod na kineski i francuski... tako da sam "mislio na buducnost" :)
(smaranje nevidjeno...)
[Ovu poruku je menjao StarCraft dana 30.07.2008. u 11:18 GMT+1]
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)