Me respondo a mí mismo ...
El caso es que el enfoque no era el adecuado ... cuando usaba el método redirect .. lo que hacia era irse a saco a esa url .. pero en realidad no volvía a pasar por el enrutador, lo que deduzco que el enrutador se carga una sola vez y no cada vez que entra una petición.
Al final tengo un front controller el cual recibe el nombre de la página que se solicita y entonces busco y averiguo que idioma pertenece dentro de mis carpetas de traducciones :
Código PHP:
public function recupera_lang($ruta){
//obtenemos las cadenas de todas las traducciones
$languages = File::directories(base_path().'/resources/lang');
foreach ($languages as $key => $value) {
$lang[$key] = File::getRequire($value."/rutas.php");
//ahora por cada carpeta lang buscaremos el archivo rutas
}
foreach ($lang as $key => $value) {
//recorremos todos los arrays de lang
foreach ($value as $k => $v) {
//borramos el slash de la traducción /start --> start
$ruta_langs= ltrim ($v, '/');
if ($ruta_langs ==$ruta) {
//devolvemos el indice de array que es igual al indice
// de la carpeta :
// de -->0
// en -->1
// es -->2
return $key;
//ahora podemos setear el App::locale Sabiendo en que
//idioma nos esta pidiendo la petición.
}
}
}
}
Luego seteo el App::locale que corresponde y a correr.
Llevo unos días trasteando laravel así que supongo que hay soluciones mas elegantes.. de momento a mí esta me hace el apaño y espera que pueda ayudar a alguién!.
Un saludo!