sito multilingua come farlo?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
incredible
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 710
Iscrizione: lunedì 26 febbraio 2007, 8:08

sito multilingua come farlo?

Messaggio 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.
Avatar utente
Mr. Dreadsoft
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1510
Iscrizione: martedì 2 gennaio 2007, 11:08
Contatti:

Re: sito multilingua come farlo?

Messaggio 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)
Progetto del momento: Trabolsciuter (ricerca i problemi già risolti nel forum di ubuntu)
Avatar utente
christian88
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1648
Iscrizione: mercoledì 31 gennaio 2007, 15:34
Località: Cernusco sul naviglio
Contatti:

Re: sito multilingua come farlo?

Messaggio 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  ;)
Stilogo | MondoSviluppatori | ItalianDevTeam - Android
Errare è umano, ma per incasinare tutto ci vuole la password di root!!
Ubuntu user #19519
incredible
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 710
Iscrizione: lunedì 26 febbraio 2007, 8:08

Re: sito multilingua come farlo?

Messaggio 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
nulele
Prode Principiante
Messaggi: 129
Iscrizione: lunedì 30 aprile 2007, 10:44

Re: sito multilingua come farlo?

Messaggio 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...  ;)
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: sito multilingua come farlo?

Messaggio 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
Ultima modifica di prampa il giovedì 27 settembre 2007, 0:05, modificato 1 volta in totale.
Avatar utente
Mr. Dreadsoft
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1510
Iscrizione: martedì 2 gennaio 2007, 11:08
Contatti:

Re: sito multilingua come farlo?

Messaggio 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
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
Scoppiettante Seguace
Messaggi: 710
Iscrizione: lunedì 26 febbraio 2007, 8:08

Re: sito multilingua come farlo?

Messaggio da incredible »

come posso condividere l'array in tutti i file del mio progetto?
Avatar utente
Mr. Dreadsoft
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1510
Iscrizione: martedì 2 gennaio 2007, 11:08
Contatti:

Re: sito multilingua come farlo?

Messaggio da Mr. Dreadsoft »

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)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti