Ti sconsiglio di usare i sottodomini a questo scopo, oltre ad essere piu' complessa la gestione dei DNS e' anche assai poco SEO-friendly e i motori di ricerca faranno piu' fatica ad indicizzare il tuo sito. Per quanto riguarda le subdirectories hai due possibilita':
- Usare mod_rewrite(Apache, ma gli altri hanno sistemi per lo stesso scopo) per interpretare la richiesta
/it-it/
come fosse stato richiesto index.php?lang=it-it
, mentre l'utente non vede nulla.
- Vantaggi: ti permette di gestire in modo dinamico le lingue, puoi fare il tutto con solo i due file .php e .htaccess
- Svantaggio: gestione complessa se hai bisogno di altri parametri GET o "sottocartelle"
- Creare N cartelleper N lingue, con N file index.php con dentro
<?php define("LANG", "xx"); require "../common.php";
dove common controlla la lingua con defined
e prosegue con l'interfaccia tradotta.
- Vantaggio: funziona su qualunque webserver, anche su hosting free che non supportano l'URL rewrite
- Svantaggi: innumerevoli file, soluzione "sporca", poco mantenibile e scalabile
Consiglio quindi l'URL rewrite e' sicuramente la scelta piu' elegante, inoltre puoi usare il codice che ti ho gia' suggerito, ti basta scrivere le regole per il rewrite.