Buenas,
 
Tienes dos formas, una por cookies y otra empleando variables de sesion. Yo hace cuatro dias me plantee el mismo problema y finalmente opte por emplear variables de sesion. 
Para controlar que LINK se ha pulsado, tendras que trabajar con una variable que traspase el idioma, por ejemplo  
 Código PHP:
    echo "<a href=\"http://www.tudominio.com/index.php?languaje=en\">English</a>"; 
    
  Y para controlar el idioma seleccionado empleando sesiones puedes emplear este script:  
 Código PHP:
    <?php 
global $languaje; // variable que traspasa el valor de idioma mediante URL 
session_start(); 
//Primero revisamos si la variable de session contiene algun valor, con el fin
//de actualizar el mismo en caso de que se haya efectuado un cambio de idioma 
//En nuestro ejemplo, lang es la variable de sesion y languaje contiene el valor 
//del idioma en caso de que se efectue el cambio.
 
if($lang==""){ 
    if (isset($_SESSION['lang'])) { 
        $lang=$_SESSION['lang'];  
    }else{ 
        session_register('lang');  
        $_SESSION['lang'] = "en";  
    }  
}else{  
//lang tiene un valor traspasado en URL por lo que actualizamos  
//el valor de la variable de session 
    $_SESSION['lang']=$languaje; 
} 
 
//aqui podras montar la consulta a la bbdd para extraer la información de los 
textos según el idioma que se haya seleccionado o el predeterminado en caso 
de que la variable de sesión no contenga información.
 
?>    
  Espero que te haya servido de ayuda. 
Saludos