Oggi vedremo come realizzare e progettare un sito Flash Multilingua utilizzando ActionScript 2 e ActionScript 3
Molti clienti mi richiedono la possibilità di tradurre il proprio sito Flash in più lingue, questo comporta maggiore visibilità in campo internazionale.
Vediamo ora come creare un sito Flash Multilingua utilizzando AS2 e AS3
Creare un sito Flash Multilingua AS2
Per gestire le differenti lingue possiamo usare il pannello Stringhe, che permette di creare da subito le traduzioni all’interno dell’ambiente di sviluppo Flash
Il pannello Stringhe lo possiamo trovare da Strumenti >> Altri Pannelli >> Stringhe oppure tasto rapido CTRL+ F11
Il pulsante Imposta XML viene usato qualora avessimo gia un file XML da importare.
Premendo il pulsante Impostazioni, potremo scegliere le lingue da noi stabilite per la traduzione e scegliere quella predefinita, in questo caso l’Italiano
A questo punto inseriamo un ID nel pannello Stringhe ad esempio ciao, questo verrà cambiato in IDS_CIAO
Dopo aver compilato i campi nelle due lingue, italiano e inglese, salviamo il nostro progetto .fla ed esportiamo il filmato .swf [tasto rapido CTRL+ENTER]
Verranno automaticamente create due cartelle en e it in cui troveremo i file XML
A questo punto ci basterà individuare la lingua con la classe capabalites o dare la possibilità all’utente di cambiare linguaggio.
:) Scarica esempio sito Flash Multilingua in AS2
via [HTML.it]
Creare un sito Flash Multilingua AS3
Per creare un sito flash Multilingua con Actionscript 3 useremo la classe Translator
La classe translator permette di creare un file in cui racchiudere tutte le lingue desiderate per effettuare la traduzione
In questo caso non avremo bisogno di un file XML esterno, in quanto grazie a Languages.as verranno gestite tutte le lingue adoperando le stesse classi.
Per ogni lingua ci basterà creare una classe in questo modo
public static var it:Object = new Object();
public static var en:Object = new Object();
Nel file Languages.as invece ci basterà inserire le traduzioni delle varie lingue in questo modo
it.main = "Ciao Mondo!";
en.main ="Hello World!";
Possiamo notare l’uso di identificazione uguale alle classi, il nome dell’oggetto corrisponde alla sigla della lingua e viceversa, per rendere il tutto più intuitivo e semplice
:) Scarica esempio sito Flash Multilingua in AS3
via [Marcello Surdi]
23 Commenti
Ottimi consigli Julius!
Ottima la classe Translator per AS3!!!
Utilissimo come sempre! questa mi era sconosciuta :)
ottimo lavoro… però mi sorge spontanea una domanda julius…
sei io cambio lingua in una pagina, cè un modo affinchè io possa cambiare link o pagina restando nella lingua selezionata senza dover tutte le volte ri-selezionare la lingua?
grazieee :)
@carolina Quando cambi la lingua, cambi totalmente il contenuto dei tuoi testi ed eventuali link al suo interno
Come sempre…grande!!!
capito Ju grande come sempre ;)
Ciao Juilus, ho un piccolo quesito.
Seguendo le tue indicazioni, come sempre precise e puntuali, ho realizzato un . swf multilingua in AS2 e fin qui tutto bene.
I problemi nascono quando all’interno di questo .swf ne carico un altro (tramite loadMovie) avente anch’esso la gestione delle stringhe multilingua.
Separatamente funzionano; insieme no (nessuno dei due). Entrambi i file includono la classe mx.lang.Locale (che a differenza delle altre è compilata nel .swf e non fa parte del player) e forse il problema sta proprio lì ma non ne sono sicuro. Puoi aiutarmi in qualche modo.
Grazie.
Un tutorial veramente interessante, se nn ci fossi tu julius!lol
Ti vorrei fare una domandina xò…
Usando AS2, come potri fare a cambiare automaticamente l’ordine dei due linguaggi nella combobox in base al linguaggio scelto automaticamente al runtime?!
@luca83 puoi usare una combox che si popola a seconda di una variabile impostata in runtime
grazie julius, in effetti era quello a cui avevo pensato… riusciresti a farmi un esempio su come potrei impostare la variabile? non so come ricavarmi il langcode al runtime… pardon, è che non sono molto esperto!
Credo di aver trovato un metodo… forse troppo arcano xò, chiedo qui che magari mi dite se è sbagliato.
Ho inserito un nuovo id nel pannello stringhe e l’ho chiamato IDS_LANG, quindi ho assegnato come valori “en” e “it”.
var Langcode:String = Locale.loadString(“IDS_LANG”);
if (Langcode == en) {
lingua.addItem(“English”,”en”)
lingua.addItem(“Italiano”,”it”)
}else{
lingua.addItem(“Italiano”,”it”)
lingua.addItem(“English”,”en”)
}
Nessuno mi può aiutare?
(Commento del 25 Luglio 2008 alle 9:54 am)
@luca83 si è una soluzione..
@nauli probabilmente va in conflitto con l’atrlo swf
prova a importarlo in questo modo, se l’errore persiste prova a fondere i due swf
Ho già provato con _lockroot ma non va. Prima di fondere gli swf provo a pensare un’altra soluzione. Ti tengo aggiornato!
Comunque grazie!
As 1 non si può ?
Ciao Julius, come sempre trovo interessantissimi i tuoi articoli e sto apprendendo un sacco di cose!
La mia domanda è molto semplice:
invece del combobox vorrei usare dei pulsanti, ma non riesco a passargli i paramentri It e En. Uso AS2.
grazie e ancora complimenti!
Ciao,
è la prima volta che scrivo, ed oltre a farti i complimenti, ti scoccio con un piccolo problema. Ho utilizzato questo tutorial Translator AS2 , ma non mi fa selezionare la stessa lingua per più di una volta.
Ti sarei grato se mi dessi un consiglio….GRAZIE
ciao a tutti… invece della combo per cambiare la lingua si potrebbe usare qualcosa del genere loadMovieNum(“mio.swf?lingua=en”,5) ?
grazie anticipatamente.
ciao Julius, ho un sito tutto in flash.. vorrei fare un frame dove ci sn le bandierine, cliccando sulla bandierina passi al frame successivo con nextFrame(); però che ci devo mettere prima per caricare una determinata lingua?
on (release) {
IL CODICE PER CARICARE LA LINGUA
nextFrame();
}
grazie anticipatamente
scusate ma la classe Translator per as3 esiste ancora? perchè io non la trovo in nessun manuale as3… e poi l’esempio allegato per as3 non è più disponibile? qualcuno me lo potrebbe dare? grazie infinite…
nn funziona + il collegamento al file sorgente…può essere??
Ciao Julius, ho utilizzato il tuo esempio in as2 per il cambio lingua e tutto ok ma sorgono dubbi e perplessità a cui tu spero possa dare risposta:
Se uso delle maschere il testo non si vede;
Nell’esempio crei una funzione testi. Casualmente ho notato che se compilata parzialmente (il loadstring per capirci) tutti i testi cambiano lo stesso. E’ dunque necessario compilarla tutta comunque?
Grazie