sito multilingua come farlo?
-
incredible
- Scoppiettante Seguace

- Messaggi: 710
- Iscrizione: lunedì 26 febbraio 2007, 8:08
sito multilingua come farlo?
se volessi convertire il mio sito in un altra lingua come posso fare?
pensavo potrei inserire tutte le parti scritte sul db e selezionare in questo modo la parte della lingua che sto usando..
vi sembra un metodo furbo?
quali altri metodi si possono utilizzare?
in modo che sia facile anche tradurre in altri lingue.. ad esempio vorrei fare una pagina con inserimento nuove traduzioni ect..
Grazie per qualunque consiglio.
pensavo potrei inserire tutte le parti scritte sul db e selezionare in questo modo la parte della lingua che sto usando..
vi sembra un metodo furbo?
quali altri metodi si possono utilizzare?
in modo che sia facile anche tradurre in altri lingue.. ad esempio vorrei fare una pagina con inserimento nuove traduzioni ect..
Grazie per qualunque consiglio.
- Mr. Dreadsoft
- Entusiasta Emergente

- Messaggi: 1510
- Iscrizione: martedì 2 gennaio 2007, 11:08
- Contatti:
Re: sito multilingua come farlo?
puoi darci qualche informazione in più ?
che linguaggio stai usando ?
che tipo di testi devi tradurre ? (elementi dell'interfaccia, documenti più lunghi)
che linguaggio stai usando ?
che tipo di testi devi tradurre ? (elementi dell'interfaccia, documenti più lunghi)
Progetto del momento: Trabolsciuter (ricerca i problemi già risolti nel forum di ubuntu)
- christian88
- Entusiasta Emergente

- Messaggi: 1648
- Iscrizione: mercoledì 31 gennaio 2007, 15:34
- Località: Cernusco sul naviglio
- Contatti:
Re: sito multilingua come farlo?
vuoi che l'utente scelga la lingua prima di arrivare alla home?
se è così basta dividere il tuo spazio web in 2 cartelle (o quante lingue vuoi mettere) e in una mettere i file ita e nell'altra i file eng e in una pagina di intro metti due immagini delle bandiere con il collegamento alle 2 cartelle
così è un procedimento lungo ma è il più semplice se non conosci bene un linguaggio di programmazione
se è così basta dividere il tuo spazio web in 2 cartelle (o quante lingue vuoi mettere) e in una mettere i file ita e nell'altra i file eng e in una pagina di intro metti due immagini delle bandiere con il collegamento alle 2 cartelle
così è un procedimento lungo ma è il più semplice se non conosci bene un linguaggio di programmazione
Stilogo | MondoSviluppatori | ItalianDevTeam - Android
Errare è umano, ma per incasinare tutto ci vuole la password di root!!
Ubuntu user #19519
Errare è umano, ma per incasinare tutto ci vuole la password di root!!
Ubuntu user #19519
-
incredible
- Scoppiettante Seguace

- Messaggi: 710
- Iscrizione: lunedì 26 febbraio 2007, 8:08
Re: sito multilingua come farlo?
voglio fare qualcosa di molto funzionale..
in modo che sia possibile aggiungere un sacco di lingue in + in un futuro..
uso php mysql ajax javascript ect
in modo che sia possibile aggiungere un sacco di lingue in + in un futuro..
uso php mysql ajax javascript ect
Re: sito multilingua come farlo?
Se vuoi renderlo più flessibile puoi fare così:
- crei un database con due record. ogni record è una lingua con un indice (id) diverso. ogni record avrà tante colonne quanti sono i testi o le immagini o i link che possono cambiare lingua;
- nel sito ogni testo, ogni immagine o ogni link che può cambiare lingua, sarà una variabile;
- imposti un cookie in modo che quando l'utente nella home clicca la lingua preferita, viene registrata una variabile di sessione nel cookie stesso, che ti porti dietro in ogni pagina;
- In ogni pagina, controllerai proprio la variabile nel cookie e la userai come indice (id) per estrarre dal database tutte le variabili, della lingua scelta, in quella pagina;
sembra difficile ma è solo lungo da fare...
- crei un database con due record. ogni record è una lingua con un indice (id) diverso. ogni record avrà tante colonne quanti sono i testi o le immagini o i link che possono cambiare lingua;
- nel sito ogni testo, ogni immagine o ogni link che può cambiare lingua, sarà una variabile;
- imposti un cookie in modo che quando l'utente nella home clicca la lingua preferita, viene registrata una variabile di sessione nel cookie stesso, che ti porti dietro in ogni pagina;
- In ogni pagina, controllerai proprio la variabile nel cookie e la userai come indice (id) per estrarre dal database tutte le variabili, della lingua scelta, in quella pagina;
sembra difficile ma è solo lungo da fare...
Re: sito multilingua come farlo?
in aggiunta a @nulele (in effetti il procedimento, ha ragione, sembra lungo ma anche con altre soluzioni sempre lungo rimane anche se è piu' semplice farlo che spiegarlo), ti posto questi due link http://php.html.it/articoli/leggi/1720/gettext-uso-e-funzionalita-in-php-della-libreria-d/ e
http://php.html.it/articoli/leggi/1925/come-progettare-siti-multilingua-in-php-con-databa/
http://pear.php.net cercare tra i package l'internazionalizzazione......
A me non piace molto la soluzione database, che ritengo comunque valida, anche se in effetti dipende da quante sono le chiavi da ricercare....
Preferisco comunque mettere in una cartella dei file xml con le varie traduzioni delle stringhe chiavi, a cui si potrà fare riferimento. Il tipo di linguaggio scelto andrebbe salvato in una variabile di sessione e costituisce il nome del xml in cui andare a ricercare le chiavi.
Conta che ci sono una serie di cose da tenere a mente. 1) La conversione di label, 2) di contenuti e 3) l'internazionalizzazione di formati di visualizzazione.
1) tramite una chiave di ricerca viene restituito il valore da visualizzare
2) tramite una chiave di ricerca viene restituita la localizzazione del testo presente ad esempio nel database. Come esempio pensa alle combobox. Il campo da visualizzare non ha una descrizione ma dovrà avere un suo codice che costituirà la chiave di ricerca nell'xml. Ad esempio, la descrizione "maschile", "femminile", sarà presente in una tabella DESC_TYPE con id_type e code_type: 1, "ciccio", 2 "ciccia". La chiave "ciccio" viene ricercata nel xml di localizzazione specifico e ritornerà "femminile" o "female" in base alla localizzazione scelta.
3) i numeri, le date, la valuta.....dipende tutto dalla localizzazione. La puoi risolvere anche qui come una chiave di ricerca che restituisce il formato da utilizzare per la visualizzazione dell'informazione.
Io mi sono incasinato su windows per l'installazione di gettext, non l'ho mai provato e non so dirti di piu': su linux non ho ancora avuto il piacere.
Se comunque ti serve e vuoi provare questo tipo di soluzione, posso postare un esempio di classi php e file xml che ho fatto per l'impostazione della localizzazione. Funziona bene, senza problemi.....la uso per un'applicazione php a linea di comando pero' dovrebbe essere valida anche su web.....
Pero', ripeto, questa è una tra le varie soluzioni che esistono....
ciao
http://php.html.it/articoli/leggi/1925/come-progettare-siti-multilingua-in-php-con-databa/
http://pear.php.net cercare tra i package l'internazionalizzazione......
A me non piace molto la soluzione database, che ritengo comunque valida, anche se in effetti dipende da quante sono le chiavi da ricercare....
Preferisco comunque mettere in una cartella dei file xml con le varie traduzioni delle stringhe chiavi, a cui si potrà fare riferimento. Il tipo di linguaggio scelto andrebbe salvato in una variabile di sessione e costituisce il nome del xml in cui andare a ricercare le chiavi.
Conta che ci sono una serie di cose da tenere a mente. 1) La conversione di label, 2) di contenuti e 3) l'internazionalizzazione di formati di visualizzazione.
1) tramite una chiave di ricerca viene restituito il valore da visualizzare
2) tramite una chiave di ricerca viene restituita la localizzazione del testo presente ad esempio nel database. Come esempio pensa alle combobox. Il campo da visualizzare non ha una descrizione ma dovrà avere un suo codice che costituirà la chiave di ricerca nell'xml. Ad esempio, la descrizione "maschile", "femminile", sarà presente in una tabella DESC_TYPE con id_type e code_type: 1, "ciccio", 2 "ciccia". La chiave "ciccio" viene ricercata nel xml di localizzazione specifico e ritornerà "femminile" o "female" in base alla localizzazione scelta.
3) i numeri, le date, la valuta.....dipende tutto dalla localizzazione. La puoi risolvere anche qui come una chiave di ricerca che restituisce il formato da utilizzare per la visualizzazione dell'informazione.
Io mi sono incasinato su windows per l'installazione di gettext, non l'ho mai provato e non so dirti di piu': su linux non ho ancora avuto il piacere.
Se comunque ti serve e vuoi provare questo tipo di soluzione, posso postare un esempio di classi php e file xml che ho fatto per l'impostazione della localizzazione. Funziona bene, senza problemi.....la uso per un'applicazione php a linea di comando pero' dovrebbe essere valida anche su web.....
Pero', ripeto, questa è una tra le varie soluzioni che esistono....
...non ho capito....ad esempio vorrei fare una pagina con inserimento nuove traduzioni
ciao
Ultima modifica di prampa il giovedì 27 settembre 2007, 0:05, modificato 1 volta in totale.
- Mr. Dreadsoft
- Entusiasta Emergente

- Messaggi: 1510
- Iscrizione: martedì 2 gennaio 2007, 11:08
- Contatti:
Re: sito multilingua come farlo?
se la traduzione riguarda dei file interi, e sono file di testo, allora puoi metterli semplicemente in cartelle separate (/it, en, es, fr ecc).
Se la traduzione riguarda elementi del sito (titoli, descrizioni, ecc.) allora una soluzione potrebbe essere questa:
metti tutto il "traducibile" in un array, strutturato in questo modo:
Per tradurre la pagina "automaticamente", basterà inserire questo codice all'inizio di ogni pagina
e poi, per inserire le voci
in questo modo le pagine si tradurranno "da sole" in base alla lingua predefinita di chi visita il sito. L'altro modo, forse anche più pratico, potrebbe essere quello di inserire tutte le traduzioni in un file ".ini" per lingua, una sezione per ogni pagina e ricorrere alla funzione
http://www.php.net/manual/it/function.p ... i-file.php
Se la traduzione riguarda elementi del sito (titoli, descrizioni, ecc.) allora una soluzione potrebbe essere questa:
metti tutto il "traducibile" in un array, strutturato in questo modo:
Codice: Seleziona tutto
<?php
$langpack['pagina1.php']['it'] = array (
'titolo' => "Titolo della pagina 1",
'sottotitolo' => "sottotitolo",
'messaggio' => "Benvenuti"
);
$langpack['pagina1.php']['en'] = array (
'titolo' => "Page 1 - title",
'sottotitolo' => "subtitle",
'messaggio' => "Welcome"
);
?>
Per tradurre la pagina "automaticamente", basterà inserire questo codice all'inizio di ogni pagina
Codice: Seleziona tutto
include 'language_pack.php' // il file che contiene l'array
$pagina = basename(__FILE__);
$lingua = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$lp = $langpack[$pagina][$lingua];
Codice: Seleziona tutto
<H1><?php echo $lp['titolo']; ?></H1>
<H2><?php echo $lp['sottotitolo']; ?></H2>
http://www.php.net/manual/it/function.p ... i-file.php
Ultima modifica di Mr. Dreadsoft il giovedì 27 settembre 2007, 11:09, modificato 1 volta in totale.
Progetto del momento: Trabolsciuter (ricerca i problemi già risolti nel forum di ubuntu)
-
incredible
- Scoppiettante Seguace

- Messaggi: 710
- Iscrizione: lunedì 26 febbraio 2007, 8:08
Re: sito multilingua come farlo?
come posso condividere l'array in tutti i file del mio progetto?
- Mr. Dreadsoft
- Entusiasta Emergente

- Messaggi: 1510
- Iscrizione: martedì 2 gennaio 2007, 11:08
- Contatti:
Re: sito multilingua come farlo?
lo metti in un file tipo langpack.php e usi include nelle pagine da tradurre (guarda il codice dell'esempio)
Progetto del momento: Trabolsciuter (ricerca i problemi già risolti nel forum di ubuntu)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti