Ya vi porque es... no había estudiado el código anteriormente...
Parece que la consulta esa que cambia el idioma se realiza cada vez que alguien abre el index.php...
Ahora lo que se me ocurre es lo siguiente:
Código PHP:
<?php
$consulta_lang = mysql_query("SELECT value FROM #__pf_user_profile WHERE user_id = '$user->id' AND parameter = '$parameter'");
$lenguaje_usuario = mysql_fetch_assoc("$consulta_lang");
$usuario_dato = array("english", "spanish");
$pc_dato = array("en-GB", "es-ES");
$lenguaje_usuarioo = str_replace($usuario_dato, $pc_dato, $lenguaje_usuario['value']);
if($curLanguage->getTag() != "$lenguaje_usuarioo"){
$parameter = 'language';
 
  if ($curLanguage->getTag() == 'en-GB') {
  $value = 'english';
  }else if($curLanguage->getTag() == 'es-ES') {
  $value = 'spanish';
  }else{
  }
 
  $query = "UPDATE #__pf_user_profile SET value = '$value' WHERE user_id = '$user->id' AND parameter = '$parameter'";
  $db->setQuery($query);
  $db->query();
 
?>
<script language="JavaScript" type="text/javascript">
var pagina= "<?php echo $_SERVER['PHP_SELF'] ?>"
function redireccionar() {
location.href = pagina
}
setTimeout ("redireccionar()", 1);
</script>
<?php
}
?>
Reemplaza desde
$parameter = 'language'; hasta
</script> por ese código y contame....
La verdad que no estoy muy seguro de que esto valla a funcionar, porque no estoy familiarizado con la DB de Joomla. Pero podría llegar a funcionar jaja
Fijate y contame ;)
NOTA: Quitale el simbolito raro no se porque se pone. Lo haría yo pero me tengo que ir. Suerte ;)