Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Cambio Lingua aiuto per favore

    salve a tutti rafazzi.

    Vi chiedo nuovamente il vostro aiuto.

    Io sto realizzando una piccola pagine così strutturata.

    nome: (a fianco alla label "nome" ho una text box)

    cognome: (a fianco alla label "cognome" ho una text box)

    ecc
    ecc

    insomma tipo una comunq pagina di registrazione.

    Ora IL MIO quiesito è il seguente e spero mi possiate aiutare.


    devo mettere un menù a tendina e fin qui nessun problema con due opzioni una ITALIANO e una INGLESE in pratica se seleziono intaliano devono apparire le label in italiano e quindi nome, copgnome, ecc ecc

    se invece seleziono inglese devono apparire le label in lingua inglese e cioè name, surname ecc ecc mi potreste genitlmente aiutare???

  2. #2
    hai due opzioni a mio avviso: o usi ajax per ottenere la form localizzata nella lingua corrente, o importi un dizionario contenenete le stringhe localizzate in tutte le lingue e riempi i campi con una funzione JS.
    Dimmi tu quale preferisci.
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Penso che la prima soluzione sia la più semplice, ma per decidere bene, sarebbe opportuno sapere quanto ne sa il richiedente di javascript... e quanta voglia ha di imparare e sperimentare...

    Ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    allora ascolta, io devo realizzare questa pagine web per un progetto che stiamo facendo all'uni la tracce impone l'utilizzo del tag SELECT tramite l'evento onchange
    noi abbiamo fatto solamente xhtml, fogli di stile css e javascript.

    Quindi io dovrei realizzare questo lavoretto utilizzando questra strumenti.

    Mi puoi aiutare?

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Ok, ti aiuto. Visto che stai studiando javascript, ti basterà qualche suggeriemento, no?

    sul select imposti l'evento onChange in modo che chiami una funzione che chiameremo cambiaLingua.

    Diciamo anche che "Nome" e "Cognome" sono contenuti in due div distinti. id="nome" e id="cognome" rispettivamente.

    La funzione cambiaLingua, per i div di nome e cognome, ad esempio nome:
    - ottiene l'elemento tramite document.getElementById("nome");
    - cambia il contenuto del div con la proprietà innerHTML
    - ovviamente, prima deve sapere il valore del select.. questo si può fare in due modi:
    . o cambiaLingua sarà invocata così: cambiaLingua(this) e quindi riceverà come parametro il select
    . oppure si può ricorrere ancora a getElementById(). Ma la soluzione sopra mi pare più bellina...

    Mi pare che ci sia tutto..


    Ciao
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  6. #6
    Meglio la seconda allora, ti da l'oppurtunità di lavorare meglio sul DOM:

    JS offre una serie di funzionalità per la manipolazione del HTML tramite DOM (non sto a spiegarti il tutto, ma sostanzialmente tratta HTML come un albero dove, se un tag è contenuto dentro un altro, allora è figlio del suo contenitore)

    Ora, pensa ad una struttura come questa:

    codice:
    <form action = "..." method = "..">
       <table id="MyFormTable">
          <tr>
             <th rel="username"></th><td><input name="username" type="text" /></td>
          </tr>
          <tr>
             <th rel="password"></th><td><input name="password" type="password" /></td>
          </tr>
          <tr>
             <th rel="conferma"></th><td><input name="conferma" type="password" /></td>
          </tr>
          <tr>
             <th rel="nome"></th><td><input name="nome" type="text" /></td>
          </tr>
          <tr>
             <th rel="cognome"></th><td><input name="cognome" type="text" /></td>
          </tr>
    ...
    </form>
    Come puoi vedere ho creato una semplice tabella con un th ed un td per ogni riga, a questo punto creerei il select per il cambio della lingua:

    codice:
    <select name="language" id="LanguageSelector">
       <option value="it">Italiano</option>
       <option value="en">English</option>
    </select>
    Infine, ho bisogno di un Dizionario, che sarebbe un array nominale, in JS si definisce così:

    codice:
    var localizedTXT = {
      'it' : {
          'username' : 'Nome Utente',
          'password' : 'Password',
          'conferma' : 'Conferma',
          ...
       },
      'en' : {
          'username' : 'Username',
          'password' : 'Password',
          'conferma' : 'Confirm',
          ...
       }
    };
    Scommetto che hai già intuito più o meno come funziona...
    Il codice JS
    codice:
    function changeLang(lang){
       var myTable = document.getElementById('MyFormTable');
       var allTh = myTable.getElementsByTagName('th');
       for(i = 0; i < allTh.length; i++)
       {
          var relVal = allTh[i].getAttribute('rel');
          allTh[i].innerHTML = localizedTXT[lang][relVal];
       }
    }
    
    window.onload = function(){
      document.getElementById('LanguageSelector').onchange = function(){
        var lang = this.options[this.selectedIndex].value;
        changeLang(lang)
      } 
    
      changeLang('it');
    }
    Ed il gioco è fatto.
    I DON'T Double Click!

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    mmm.. secondo me non va bene... troppo professionale.. se fa come dici, all'università lo sgammano
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    beh, ma proprio perché è all'uni che penso (e spero) non si fermi a fare un copia incolla, ma si chieda che cosa è document.getElementById, o myTable.getElementsByTagName... e che significa window.onload =
    I DON'T Double Click!

  9. #9
    grazie a tutti ragazzi per i vostri aiuti ora mi metto subito al lavoro e vediamo cosa riesco a tirar fuori

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per la prossima volta: prima leggi il regolamento (crossposting / titolo)
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.