Pagina 1 di 1

sito multilingua come farlo?

Inviato: mercoledì 26 settembre 2007, 14:47
da incredible
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.

Re: sito multilingua come farlo?

Inviato: mercoledì 26 settembre 2007, 16:14
da Mr. Dreadsoft
puoi darci qualche informazione in più ?
che linguaggio stai usando ?
che tipo di testi devi tradurre ? (elementi dell'interfaccia, documenti più lunghi)

Re: sito multilingua come farlo?

Inviato: mercoledì 26 settembre 2007, 16:20
da christian88
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  ;)

Re: sito multilingua come farlo?

Inviato: mercoledì 26 settembre 2007, 21:31
da incredible
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

Re: sito multilingua come farlo?

Inviato: mercoledì 26 settembre 2007, 21:39
da nulele
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...  ;)

Re: sito multilingua come farlo?

Inviato: giovedì 27 settembre 2007, 0:00
da prampa
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....
ad esempio vorrei fare una pagina con inserimento nuove traduzioni
...non ho capito....
ciao

Re: sito multilingua come farlo?

Inviato: giovedì 27 settembre 2007, 11:06
da Mr. Dreadsoft
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:

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];

e poi, per inserire le voci

Codice: Seleziona tutto

<H1><?php echo $lp['titolo']; ?></H1>
<H2><?php echo $lp['sottotitolo']; ?></H2>
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

Re: sito multilingua come farlo?

Inviato: venerdì 5 ottobre 2007, 10:59
da incredible
come posso condividere l'array in tutti i file del mio progetto?

Re: sito multilingua come farlo?

Inviato: venerdì 5 ottobre 2007, 11:54
da Mr. Dreadsoft
lo metti in un file tipo langpack.php e usi include nelle pagine da tradurre (guarda il codice dell'esempio)