- Home
- Categorie
- Coding e Sistemistica
- Help Center: consigli per il tuo progetto
- Aggiungere lingue al mio sito
-
Aggiungere lingue al mio sito
Buonasera a tutti.
Vorrei mettere la possibilità di cambiare la lingua nel mio sito in firma. Ho già in mente di creare un file di lingua per ogni lingua con un passaggio di variabili nelle parole/frasi da tradurre (un po' come nei CMS).
Chiedo però un consiglio su come salvare o passare la scelta di lingua dell'utente. In mente mi sono venute due possibilità:
- un cookie
- un passaggio di variabile continuo in ogni pagina
Avete da suggerirmi altre idee?
Grazie
-
Cookie!
-
ma con un cookie mi sarebbe impossibile dare in pasto al motore di ricerca le versioni alternative del sito, o sbaglio?
-
Non sbagli (a quanto mi risulta). Da quello che sò (in settimana mi informo e ti do conferma) per permettere di scaricare le versioni alternative, la cosa migliore da fare è mettere la lingua su una variabile di sessione, e per valorizzare la variabile di sessione catturare la lingua dal browser utilizzato.
Alcuni utenti che hanno il browser non nella loro lingua visualizzeranno la lingua sbagliata all'accesso, ma non è un problema così grave (e poi se hanno il browser con la lingua sbagliata si vede che la conoscono no??).
In questo modo gli spider si autenticano con i diversi settaggi e indicizzano tutte le pagine.
Un esempio di come questo funziona: cerca con google "casalepereta", il primo sito che trova è in italiano. Se cerchi "casalepereta prices" ti troverà la versione inglese dello stesso sito. E il sito in questione è stato realizzato con la tecnologia che ti ho descritto.
-
Allora chiedo scusa, ignoranza mia...
-
No Shad il cookie in genere è meglio! Quando non hai problemi di indicizzazione... non ti stavo criticando!!!
-
Ho fatto le due ricerce che mi hai consigliato ed effitivamente trova un risultato in italiano e uno in inglese. Cliccandoci peròil sito mi viene mostrato da entrambi i link in italiano.
Quindi dovrei fare una cosa di questo tipo:
<?php session_start(); $language=$_SESSION[language]; $file_language=$_SESSION[file_language]; if(isset($language){ if (substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2) == "it") { $_SESSION[language]="it"; $_SESSION[file_language]="language/italian.php"; } elseif (substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2) == "en") { $_SESSION[language]="en"; $_SESSION[file_language]="language/english.php"; } } else{ include('$file_language'); }
Ma è sicuro che gli spider fanno diversi settaggi? Ho letto da altre parti che c'è il rischio che lo spider prenda solo la parte in inglese.
-
Quando entri, come ti dicevo, il sito legge la lingua del tuo browser web e si adegua... quel sito è la dimostrazione che gli spider (quantomeno quelli di google) si autenticano in ambedue le maniere (daltra parte il filtro di google "solo siti in italiano" non avrebbe senso altrimenti).
Il codice che hai scritto dovrebbe andare (non sono esperto in php ma mi sembra corretto) ricordati di includere un controllo in ogni pagina (tramite un include) che verifica che la SESSION[language] sia impostata, ed in caso negativo valorizzi nuovamente il valore.
-
Perfetto grazie
-
Avrei ancora da chiedere un consiglio. Ho creato il file ITALIAN.php; mi conviene usare il DEFINE() con le variabili che sono associate alla lingua?
Grazie in anticipo