- Home
- Categorie
- Coding e Sistemistica
- PHP
- sito multilingua come farlo?
-
Capita
-
tante risposte e niente di utile..mah..
-
Vabbè, si faceva per parlare...
Comunque, per tornare al tuo problema, un sito multilingua puoi farlo in diversi modi.Il primo che mi viene in mente è un array (come suggerito dal buon SuperSavio) con i contenuti in varie lingue, un indice con valore "it" per l'italiano, "en" per l'inglese e "fr" per il francese, quindi passi alle pagine la variabile lingua come vuoi e via.
Per farti un esempio:
La pagina in questione stampa
<?php echo $array_contenuti[$lingua]['testo_da_stampare']; ?>
e chiami la pagina con l'url fatto così:
www.paginamultilingua.it/index.html?lingua=it
se lo vuoi in italiano, sennò:www.paginamultilingua.it/index.html?lingua=en
se lo vuoi in inglesee così via.
-
scusate la mia ignoranza..ma il codice da voi postato dove lo metto???nel <head> di tutte le pagine==???
-
E' codice PHP.
Va messo dove vuoi che sia stampato il testo che appare in lingua.
-
allora funziona così...crei una cartella language al suo interno crei un file chiamato ita.php e all'interno crei l'array
[php]
<?php
$WORDS = array("MAPPA" => "Mappa",
"CONTATTI" => "Contatti",
"LAVORACONNOI" => "Lavora con noi",
"REQUISITIMINIMI" => "Requisiti Minimi",
"VERSIONE" => "Versione");
?>
[/php]poi crei un'altra pagina chiamata eng.php
[php]
$WORDS = array("MAPPA" => "Map",
"CONTATTI" => "Contacts",
"LAVORACONNOI" => "It works with We",
"REQUISITIMINIMI" => "Requirement Minimums",
"VERSIONE" => "Version");
[/php]poi nelle pagine o nelle pagine ( dipende come strutturi il sito ) del tuo sito metti all'inizio del HTML questo codice..
[php]
// Inizia sessione, usato per la lingua
session_start();// Per Cambiare la lingua
if(isset($_GET['lingua'])){
$_SESSION["lingua"] = $_GET["lingua"];// Redirect
header("Location: {".$_SERVER["HTTP_REFERER"]."}");
}// Se non è selezionata la lingua la imposta
if(!isset($_SESSION["lingua"])){
$_SESSION["lingua"] = "ITA";}
include('language/'.$_SESSION["lingua"].'php');
[/php]poi nelle parti delle pagina dove devi far stampare il testo metti
[php]
echo $WORDS['MAPPA'];
[/php]ecc
poi per cambiare lingua fai un collegamento del tipo
index.php?lingua=ita // per italiano
index.php?lingua=eng // per inglesecosì hai il tuo sito multilingua
-
come posso condividere l'array in tutti i file del mio progetto?
-
In ogni pagine del tuo sito fai un include del file dove crei/definisci l'array.
-
riesumo questa discussione per una domandina: l'indicizzazione del sito ha dei problemi utilizzando questa struttura?
Michele
-
Direi di no.
Per sicurezza setti il parametro $lingua all'inizio di ogni pagina in base alla lingua per cui è predisposta, cosi' eviti di passare url come
www.miositomultilingua.it/pagina.html?lingua=enSe poi li gestisci le lingue a sottocartelle in modo da passare url come
www.miositomultilingua.it/en/pagina.html
dovresti essere a posto.(comunque credo non ci sia problema neanche utilizzando la soluzione con il parametro $lingua passato nell'url)
-
[so che non è il posto giusto, ma è forse il più adatto:]
da quando ho modificato con l'array le pagine, nel div centrale della pagina mi compaiono, solo con firefox, dei trattini orizzontali così:
[ATTACH]1030[/ATTACH]
non è un problema del css, perchè nella "vecchia edizione" del sito (tradizionale) non avevo nessun problema.
Nell'html non compaiono, e se c'è un box o un'immagine questi trattini rimangono nascosti dietro a questi.
Tra la vecchia versione e la nuova è cambiato solo questo...Aggiungo: lo sfondo è formato da rettangoli alti 10px, e la distanza tra le barrette sembra essere quella.
Però non capisco come mai nella vecchia versione non ci fossero problemi...Avete mica qualche idea?
Michele
-
Può darsi che sia un bug riconosciuto (tipo peek-a boo di IE6) di firefox che non conosco, ma se così non fosse l'unica cosa che mi viene da dirti è: verifica l'output html.
A me, per esempio, è capitato con un sito che un errore (nel mio caso un div non chiuso) mi incasinasse la visualizzazione con firefox, mentre con IE continuava a vedersi correttamente.
-
improvvisamente, stamattina non ci sono più errori.:x
Bah.... :bho:grazie
Michele
-
@tykos said:
improvvisamente, stamattina non ci sono più errori.:x
Bah.... :bho:Mistero della fede...:?
-
grande mistero...dopo un po' che la pagina rimane caricata nel browser, compaiono i trattini.
L'unico modo per farli scomparire è chiudere il programma e riaprire.
I div sono tutti al loro posto, di aperti non ce ne sono.
Aggiungo, la pagina è w3c-approvedRi-Bah...
Michele