Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Gestire multilingua

  1. #1

    Gestire multilingua

    Ho un sito formato da un filmato principale e diversi swf esterni.
    Qual'è il modo migliore per gestire il multilingua?

    Suppongo il classico sistema di utilizzare una libreria per ogni traduzione e caricare poi le variabili tradotte in un array da associare poi alle diverse caselle di testo dinamoco.

    Ma dove e come conviene utilizzare la libreria? Una per ogni filmato o una globale?
    Qualcuno l'ha già fatto...
    Grazie
    Peppe

  2. #2
    Direi che l'impostazione che intendi dare per la soluzione del tuo problema è quella giusta.
    Se hai già definito tutti i campi testo che andranno tradotti come "dinamici" hai già compiuto metà del lavoro.
    Il file (o meglio i file) che conterranno i testi (uno per ogni lingua) possono essere dei normalissimi file di testo (.txt)
    Per esempio, se tu avessi la necessità di pubblicare in tre lingue: Italiano, Inglese e Francese potresti creare tre file:
    ita.txt
    eng.txt
    fra.txt
    Nel filmato principale metterai 3 pulsanti (le classiche bandierine) con associato un codice del tipo:
    on (release) {
    lingua = "ita.txt";
    }
    questo per il pulsante con la bandiera italiana e così via...
    Poi, nel "main" inserirai, un codice del tipo:
    loadVariables(lingua, 1) // carica variabili su livello 1

    o istruzioni simili.

    Per gestire correttamente le variabili esterne leggiti questa guida:
    http://flash-mx.html.it/guide/lista_....asp?idguida=9

    Ci sentiamo,

  3. #3
    Per per come tu hai spiegato la cosa suppongo che nel file di testo debbano esserci i nomi delle variabili così come sono stati chiamati i campi dinamici, giusto?

    start=Avvia&enter=Entra&etc...

    Grazie

  4. #4

    SI' e NO

    :gren:

    Dipende da come hai nominato le variabili nei vari campi di testo.
    Dipende da come e dove carichi i filmati esterni che dici di avere.
    Dipende da come e dove caricherai i file contenenti le variabili.
    Perché? perché in funzione di ciò cambia l'indirizzo (path) delle variabili.

    Mi spiego meglio (se ci riesco):
    Mettiamo che il tuo filmato principale (main.swf) carichi tramite loadMovie il filmato esterno (info.swf) nel movieclip info.
    Nel filmato esterno c'è un campo di testo dinamico che punta alla variabile paese.
    Bene, a questo punto il campo di testo si aspetta di trovare del testo dentro la variabile paese il cui percorso sarà il seguente: _root.info.paese

    Se tu carichi il file di testo con questa istruzione:
    loadVariablesNum(lingua, 0);
    la variabile paese alimentata si troverà su _root.paese
    Se invece lo carichi con:
    testi.loadVariables(lingua);
    la variabile paese alimentata si troverà su _root.testi.paese

    A questo punto è necessario provvedere (prima di visualizzare un frame che contiene del testo)
    ad aggiornare la variabile.
    Per proseguire nel mio primo esempio:
    dentro il filmato esterno metterai:
    paese = _root.paese

    Capito il concetto?

  5. #5
    Il tuo concetto è molto chiaro.
    I miei filmati esterni sono caricati sul livello 1.
    A questo punto credo che occorra una funziona lingua che carica le variabili dal file di testo e le associ poi a tutti i testi dinamici che sono sparsi negli svariati movieclip del filmato (principale o secondario che sia). Ma era quello che volevo evitare...

    Tu che ne dici?

  6. #6
    Potresti risolvere in questa maniera.

    Esempio 1.
    Carichi le variabili sul livello 21 (ovviamente metti il numero che ti pare ma NON utilizzato per altri scopi)

    loadVariablesNum(lingua, 21);

    La variabile lingua, come da post precedenti, contiene il nome del file di testo da caricare (contenente le variabili nella lingua prescelta con il tasto bandierina).

    Nelle caselle dei campi testo contenenti le variabili, invece di mettere:
    paese
    mettereai:
    _level21.paese

    Esempio 2.
    Carichi le variabili su un movieclip sulla root, p.es. testi:

    _root.testi.loadVariables(lingua);

    Nelle caselle dei campi testo contenenti le variabili, invece di mettere:
    paese
    mettereai:
    _root.testi.paese

    OK?

  7. #7
    Se garantisci che funzione è sicuramente una soluzione valida...
    Ma mi viene un dubbio. Si può utilizzare un sistema del genere anche utilizzando LoadVars in Flash-MX con discorso delle variabili reali per le caselle di testo?

    Grazie.

  8. #8
    Flash-MX, per i campi testo dinamici, mantiene la gestione delle variabili così come era per Flash 5, per cui è esattamente la stessa cosa.
    Diverso è il discorso se utilizzi le proprietà del nuovo oggetto loadVars di Flash-MX.
    Ma in quest'ultimo caso, non devi mettere il nome della variabile.

  9. #9
    Ho letto l'articolo che mi hai suggerito sopra. Sapevo già che in questo caso Flash 5 e Flash-MX si comportassero allo stesso modo. Ma leggendo poi che in Flash-MX loadVariables è obsoleto volevo utilizzare la classe LoadVars. Solo per questo...
    In ogni modo la soluzione che hai esposto prima non riesco a farla funzionare, e pure c'è poco da sbagliare.

    Le bandierine chiamano la funziona lingua passando appunto la lingua.
    Tale funzione carica sul livello 50 le variabili contenute nel file.
    Le casello di testo adesso riportano _level50.prova (non come nome variabile)... mha...

    Ho visitato il tuo sito. Complimenti, molto carino.
    Magari poi dai un occhio al mio http://www.giuseppevitali.com

    Ciao.

  10. #10
    Originariamente inviato da Meridian
    Le bandierine chiamano la funziona lingua passando appunto la lingua.
    Tale funzione carica sul livello 50 le variabili contenute nel file.
    Le casello di testo adesso riportano _level50.prova (non come nome variabile)... mha...
    Se vuoi adottare la soluzione che ti ho proposto DEVI impostare il nome variabile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.