Ciao raga,
ho un sito multilingua i cui file di contenuto sono divisi in più cartelle così strutturate:
- www.sito.it/it/index.php (e altri file) -> vers. italiana
- www.sito.it/en/index.php (e altri file) -> vers. inglese
- www.sito.it/fr/index.php (e altri file) -> vers. francese
- www.sito.it/es/index.php (e altri file) -> vers. spagnolo
Ora. Sto (come mi è stato gentilmente consigliato giorni fa proprio qui..ave a te..) separando la logica dal markup.
Quindi, ad esempio, per il box sulla scelta della lingua ho una roba di questo tipo:
File: menu-lingua.php
Codice PHP:
<?php
# Language menu
#
# Questo file viene incluso in tutti i file del sito per evitare di riscrivere ogni volta in caso
# di ritoccate al sito/codice.
#
include_once('check-language.php'); # Questo file si occupa di verificare il linguaggio
?>
<ul>[*][url="<?php echo $ita_link; ?>"]Italiano[/url][*][url="<?php echo $eng_link; ?>"]Inglese[/url][*][url="<?php echo $fra_link; ?>"]Francese[/url][*][url="<?php echo $spa_link; ?>"]Spagnolo[/url][/list]
Come potete vedere nel file qui presente viene incluso un altro file che si occuperà di verificare da dove proviene l'utente e quindi stampare negli echo soprastanti il corretto link (e i corretti contenuti che qui non vengono esposti per essere breve).
Il controllo viene effettuato in questo modo ma..
File: check-language.php
Codice PHP:
<?php
$page = $_SERVER['PHP_SELF'];
switch ($page) {
case 'index.php':
# valorizzo le variabili da stampare in italiano..
break;
# ecc..
}
?>
Ma la variabile $_SERVER['PHP_SELF'] mi evidenzia solamente la fine del file (se aggiunta poi alla funzione basename ).
E' evidente che sbaglio approccio alla risoluzione del problema. Quindi la domanda è:
- Come faccio a sapere se l'utente si trova in it/index.php oppure in en/index.php e così via?
Grazie.