Newsgroup: it.comp.www.php
Titolo: Struttura sito multilingua

Secondo voi come deve essere strutturato un sito multilingua?
Volevo tradurre in inglese il mio piccolo sito personale e avevo 
pensate di mettete nel $_GET una variabile che indica la lingua
e in base a quella andare a prendere il file da includere.
Del tipo include(file.$_GET[lang]), vi sembra corretto o ci sono 
modi migliori? Vorrei mettere in ogni pagina le bandierine con 
la lingua quindi fare due alberi del sito statici non sarebbe 
comodo.
Secondariamente ho un problemino con php, ho bisogno di cambiare una
variabile nell'indirizzo della pagine che puo' essere ogni volta
diverso ma non so come si faccia.
del tipo 
http://blabla.com/index.php?l=1&p=2&o=1
come faccio a genereare un link identico ma con p=6?
Grazie

 come faccio a genereare un link identico ma con p=6?
C'č una variabile predefinita  $_SERVER['QUERY_STRING']  che contiene tutta 
la stringa GET.
Puoi usarla per fare le opportune sostituzioni testuali.
Ciao
Marco 

 variabile: $nome, $addr, ...
A questa soluzione non ci avevo pensato, solo che, a livello accademico
mi pongo la domanda, in un grande sito, le cose vengono gestite cosi?
Il problema principale credo sia la moltitudine di nomi di variabili
diversi.
Grazie e ciao

 diversi.
E quindi?
Ciao
Marco 

 ha scritto nel messaggio 
news:pan.2005.01.09....@chennesooiooo.it...

Se il numero di lingue è statico direi che puoi giocare in questo modo, se 
è dinamico, cioè un numero non definito e in generale dove si prevede di 
aggiungere una nuova lingua in qualsiasi momento, direi che la soluzione 
migliore sia l'uso di un db, al posto delle variabili.
Piu che altro per il solo fatto che è piu facile effettuare le traduzioni 
intervenendo direttamente sulle query.
Cooper.
-- 
BlueWare Web Agency
   [http:] 
www.blueware.it
   [msn:] 
coo...@blueware.it
   [icq:] 146781935 

 comodo.
Non utilizzare le bandierine... è un metodo super-utilizzato e 
decisamente sbagliato (qual'è la lingua del Canada? per l'inglese metti 
la bandiera britannica, statunitense, australiana ...?). Piuttosto metti 
  il codice ISO di due lettere o il nome della lingua per esteso.

  il codice ISO di due lettere o il nome della lingua per esteso.
;-) Nielsen rules!
-- 
Spirito Libero
Siamo tutti un po' abusivi a questo mondo...
(Non mettere il sale se vuoi rispondermi!)

   il codice ISO di due lettere o il nome della lingua per esteso.
Hai perfettamente ragione, solo che le bandierine mi sembrano piu'
visibili/facili da trovare.
Ciao


Anche con una moltitudine di lingue il sistema dei file non va male, basta
aggiungere un nuovo file e fare la routinne delle bandierine dinamica che
visualizza le bandierine in base ai file presenti nella directory delle
traduzioni, o qualcosa di simile.
-- 
Ciao da
       --§Ska-Man§--
[
mr.s...@gmail.com
]
----------------
http://www.fantabasketpro.net
http://www.birraesalsiccia.net

 comodo.
Io mi sono costruito un piccolo CMS dove ho usato gettext per
l'internazionalizzazione.
Se sai come si usa gettext è perfetto...
... se non sai come si usa, impararlo è molto semplice ed utile anche per
l'internazionalizzazione in altri linguaggi.
--
Roberto Simoni
www.robertosimoni.it

 
Io sto preparando un sito in sette lingue il quale avrà delle sezioni 
prestabilite. Per fare ciò sto utilizzando Smarty nel quale ho preparato 
7 file di configurazione che vengono caricati in base alla lingua scelta.
Lo svantaggio è che se devo modificare qualcosa previsto per tutte le 
lingue devo metter mano a sei file, ma nel mio caso ciò si verifica 
molto raramente.
Ciao, Luigi

 la stringa GET.
ok, ma quando ad esempio da index.php, clicco sulla bandierina,  viene
eseguito e visualizzato setlang.php (quindi visualizzata una pagina bianca),
ora come faccio da qui a ritornare a index.php?
Credo che dovrei usare un redirect, ma come faccio a sapere la pagina di
provenienza? 
E' giusto usare un redirect?
Grazie

 E' giusto usare un redirect?
La pagina setlang imposta il cookie e poi reindirizza sulla pagina 
principale del sito, diciamo main.php.
LA index.php è più una welcome page che una home page.
Ciao
Marco 

 LA index.php è più una welcome page che una home page.
Io volevo fare in modo che il clik sulla bandiera non rimandasse alla
home ma traducesse il contenuto della pagina corrente, che mi sembra
piu' carino.
Ho risolto mettendo nello script invece che il redir alla home un
redir alla pagina referer.
Pero non mi piace come soluzione, che ne dite?
Grazie

 redir alla pagina referer.
Dipende da come hai strutturato il sito.
Ma direi che può essere una buona soluzione.
Ciao
Marco 

 del tipo 
http://blabla.com/index.php?l=1&p=2&o=1
[snip]
Nelle specifiche di XHTML1.x e' deprecato l'uso del caratere & negli URL 
che va sostituito con la sua entita': &amp;
La tua url diventerebbe:
http://blabla.com/index.php?l=1&amp;p=2&amp;o=1
Impostando a dovere, qualora fosse necessario, il php.ini ed, 
eventualmente, il server, hai un buon vantaggio in termini di 
compatibilita' in avanti.


Se per cambiare lingua setti un cockie come ti veniva consigliato
qualche post fa, potresti con un javascript impostare il cookie e poi
costringere un reload della pagina.
function setLingua($lingua) {
...setLinguaCockie($lingua);
   location.reload();
}