Sessions. And if the users create accounts, store it with the account.
As for changing it, its a simple matter of adding a link for it.
Lets take for example to go to french:
If you put the control for it in a seperate inclusion file, say global.php:
$lang = strtolower($_GET['chgLang']);
$_SESSION['language'] = 'french';
$_SESSION['language'] = 'english';
Sort of idea. You would use the condition that if no session language exists to use english, otherwise use whatever is specified. I assume you got the linguistics already scripted and just need the condition / session usage yeah?