Multilingua

Stavo vedendo questo template dinamico, ma mi chiedevo come fa a cambiare la lingua e prendere a reperire i dati http://www.base.ablaweb.com, ho contatto lo sviluppatore e ha detto che utilizza i $_COOKIE ma non capisco; dice che non legge in tabella come è possibile?  :crazy: 

inviato 8 anni fa
EKELON77
X 0 X

Due sono i principali problemi da risolvere quando si vuole fare un sito multilingua:

1) capire quale lingua mostrare all'utente e/o permettere all'utente di scegliere una lingua tra quelle disponibili

2) mostrare i testi nella lingua corretta

Cos'è che stai cercando di fare? Su quale dei due aspetti hai dei problemi?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Due sono i principali problemi da risolvere quando si vuole fare un sito multilingua:

1) capire quale lingua mostrare all'utente e/o permettere all'utente di scegliere una lingua tra quelle disponibili

2) mostrare i testi nella lingua corretta

Cos'è che stai cercando di fare? Su quale dei due aspetti hai dei problemi?

Non ho problemi, ma volevo capire come procedere: se utilizzare i $_COOKIE o le $_SESSION, come reperire i dati o le label, cmq.  ho già chiaro che la lingua di default sarà l'ITA e poi l'utente potra scegliere le diverse lingue; per mostrare i testi nella lingua corretta pensavo di utilizzare i cookie per settare la lingua e prelevare le informazioni dalla tabella in base a delle condizioni di quesry, non penso che quella persona faccia tutto con cookie e non legga niente da db perchè il cookie che crea imposta solo la lingua.  O0

risposto 8 anni fa
EKELON77
X 0 X

certo, il cookie serve solo a memorizzare la lingua predefinita per l'utente

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Si ma adesso mi viene da pensare come carico le label su sito, come devo procedere dopo aver settato la lingua; stavo pensando se è corretto caricare suddete label tramite query o se esiste un altro modo?  :bye:

risposto 8 anni fa
EKELON77
X 0 X

Ciao,

se le label sono memorizzate sul DB devi caricarle tramite query, altrimenti puoi utilizzre un file contenente tutte le label che ti interessano. Ho utilizzato questa seconda soluzione per un progretto di dimensioni ridotte: www.bibionecalcio.it nonostante fossero 3 lingue O0

Buona giornata

:bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

se le label sono memorizzate sul DB devi caricarle tramite query, altrimenti puoi utilizzre un file contenente tutte le label che ti interessano. Ho utilizzato questa seconda soluzione per un progretto di dimensioni ridotte: www.bibionecalcio.it nonostante fossero 3 lingue O0

Buona giornata

:bye:

Zeta

Scusa ma io preferisco il db, ma la mia questione era un'altra come le porto sul sito mi spiego meglio come differenzio da  pagina a pagina e sezione della pagina, posso censire un nome di campo in tabella e fare la display della descrizione facendo magari

$label =$rowlabel["camponame"]

e poi fare:

echo $label

o conviene fare direttamente:

$label =$rowlabel["descrlabel"] 
echo $label

  qualcuno sa dirmi come procedere ?

P.S.: Questo è solo una bozza di codice, quindi ci potrebbere essere degli errori.  :bye:

risposto 8 anni fa
EKELON77
X 0 X

Usare un database non è la scelta migliore se i termini da tradurre sono molti. Infatti con un databese sei costretto o a prendere tutti i testi di una particolare lingua, metterli in un array e utilizzare questo per le conversioni, oppure effettuare una query per ciascun testo da tradurre.

Se i testi non sono molti allora magari questa soluzione potrebbe essere fattibile (nella versione con un unica query). Sarebbe comunque una soluzione poco scalabile.

A quel punto converrebbe procedere con un file PHP per ciascuna lingua, contenente un array di testi tradotti. Se ci pensi sarebbe identico all'unico accesso al DB per recuperare tutte le traduzioni di una determinata lingua

Norlmalmente invece, per progetti un po' più grossi, si usa Gettext.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Infatti nella nostra procedura bancaria utilizziamo un db, con xsl di recuperiamo label e valori e pensavo di fare lo stesso; perchè comprede il sito + i moduli interni all'azienda come web application extranet/intranet in php, pensi che sia il caso di utilizzare dei files?

Quindi credo sia meglio per me la scelta degli array per lingua facendo una query all'apertura delle pagine, utilizzando la bozza del codice postato in precedenza sempre se può funzionare?

risposto 8 anni fa
EKELON77
X 0 X

Hai stimato quanti record recupereresti ad ogni pagina?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Dipende dalla pagina per la home la componente multilingua è poca, quindi è difficile fare una stima; purtroppo non ho visibilità finche non metto insieme i pezzi.  :bye:

risposto 8 anni fa
EKELON77
X 0 X

Questo è un modo java di caricarmi le label tramite query, e resulset:

         CachedRowSet rsLabel = SQLStore.executeQuery(con, "ElencoLabelPerFunzione", param);
         while (rsLabel.next()) {
            containerDati.setCodDato("L"+rsLabel.getString("D00008_H008"), new CodiceDatoBean(rsLabel.getString("D00008_D001"), "T"));
         }

secondo è possibile fare in PHP? 

risposto 8 anni fa
EKELON77
X 0 X

con quelle istruzioni viene effettuata una query e viene fatta la relativa fetch dei risultati. Non vedo cosa ci sia di speciale  :dunno:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

si lo so,  a me serviva fare lo stesso idenficando se conviene per un sito; identificando un nomecampo in base alla sezione e pagina del sito, ovviamente per un applicativo intranet è diverso...!!! 

risposto 8 anni fa
EKELON77
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda