Hola a todos ,
Llevo unos días trasteando laravel 5 y la verdad es que este fmk me encanta!
Me acabo de encallar en el siguiente tema...
La idea es que quiero dar soporte multilenguaje a mi aplicación .. pero no solo el contenido sino también me gustaría que las url's también cambiaran ...
Para ello en la carpeta lang he creado un archivo de traducciones de ruta.
---lang
-----es
------rutas.php
-----en
------rutas.php
route.php -> es
Código PHP:
Ver originalreturn [
'inicio' => '/inicio',
'interesados' => '/interesados',
'inmuebles' => '/inmuebles',
'propietarios' => '/propietarios',
];
route.php -> en
Código PHP:
Ver originalreturn [
'inicio' => '/start',
'interesados' => '/interested',
'inmuebles' => '/estates',
'propietarios' => '/owners',
];
Luego el enrutador tengo un controller preparado que recibe el idioma y la ruta que quiero traducir :
Código PHP:
Route::get('lang/{lang}/{ruta}',['uses' => 'LenguajeController@get']);
Y por supuesto las rutas en los distintos idiomas:
Código PHP:
Route::get('/inicio', ['middleware' => 'auth', 'uses' => 'HomeController@index']);
Route::get('/start', ['middleware' => 'auth', 'uses' => 'HomeController@index']);
El controller recibe 2 parámetros 1 el idioma que quiero cambiar y 2 la url a redireccionar :
Código PHP:
class LenguajeController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function get($lang,$url)
{
if (Auth::user())
{
App::setLocale($lang);
return redirect(trans('rutas.'.$url));
}
}
}
Digamos que le paso al LenguajeController ,param1 'en' (el idioma a cambiar) y param2 /start (el nombre de la ruta a redirigir) .
El cambio de locale lo hace bién dentro del controller pero al redirigir a
/start me sigue saliendo el idioma por defecto.. es .
Solo cambia el idioma si no hago redirección .. pero entonces no puedo cambiar la url al idioma seleccionado ...