Allora, ho pagliativamente trovato un metodo.
Per accettare le lingue come variabile lingua a prefisso del nome della pagina ho usato nell'htaccess:
codice:
RewriteEngine On
RewriteRule ^([a-z]{2}(-[A-Z]{2})?)/(.*) $3?lang=$1 [L,QSA]
Ma se provo a passare qualche altro valore tramite get non viene visto. Però funziona, male ma funziona.
Per la scelta lingua invece ho tenuto il .com come lingua italiana e l'aggiunta di en/ come inglese. Alle bandierine di scelta lingua ho messo:
Codice PHP:
[url="<?=(isset($_GET['lang'])?"]nomepagina():$pagine->nomepagina())?>">[img]img/it.gif[/img][/url]
[url="<?=(isset($_GET['lang'])?"]nomepagina():"en/".$pagine->nomepagina())?>">[img]img/en.gif[/img][/url]</div>
Ho creato una classe che mi estrae il basename della request_uri e mi da il nome della pagina modificato con l'url_rewrite di htaccess (quindi mi scrive bio invece che bio.php come farebbe php_self).
Se la lang (come da regola htaccess) è settata allora torno indietro di cartella e, in caso di italiano, ci metto il nome della pagina, in caso di inglese riaggiungo la sottocartella en/. Perché tutto questo? Perché se uno cambia il nome della sottocartella in ad esempio fr/, torno indietro e riscrivo il tutto e se un utente riclicca sull'inglese prima resetta tutto e poi lo riaggiunge.
Per aggiungere il file lingua ho fatto così:
Codice PHP:
//includo il file di lingua adeguato
$lingue=array("it","en"); //lingue disponibili
if(!isset($_GET['lang'])){
$linguaget='it'; //lingua di default se vuoto
}else{
$linguaget=$_GET['lang'];
}
if(!in_array($linguaget,$lingue)){
$linguaget='it'; //lingua di default se non in array
}
include_once "_include/lingue/".$linguaget.".php";
Un array con le lingue disponibili mi assicura che se anche scrivono altre lingue venga caricato sempre il file italiano, a meno che la lingua non sia compresa nell'array stesso. Se non c'è lingua allora carico l'italiano (lingua di default). Alla fine aggiungo il file di lingua.
Vi prego se c'è un modo più semplice ditemelo! E se non c'è almeno ditemi come passare più valori tramite get, perché così non funziona!
Giorni interi di lavoro ma almeno posso andare avanti...