support multi language español espanol downloads content change laravel-5 locale

laravel-5 - multi - laravel 5.7 lang es



Cómo detectar la preferencia de idioma en Laravel 5 (1)

Para obtener simplemente la configuración regional del encabezado, puede obtener el valor de http-accept-language de la solicitud. Esto es accesible a través de una fachada o puede usar la variable de solicitud en su middleware:

Request::server(''HTTP_ACCEPT_LANGUAGE'') // OR $request->server(''HTTP_ACCEPT_LANGUAGE'');

Esto devuelve una cadena que se ve así: en-GB,en;q=0.8 . A continuación, puede analizarlo (¿tal vez usando explode() ?) Y tomar el idioma desde allí.

Sin embargo, este tipo de cosas a veces puede complicarse. Si necesita hacer algo más avanzado, hay un paquete que puede hacer todo esto por usted:

https://github.com/mcamara/laravel-localization

Deseo detectar el idioma de mi cliente obteniendo el idioma recomendado por el navegador.

Por ejemplo, si abres el navegador en Japón, me dará el código de país o el nombre del país que el usuario actual abrió como "en-jp" o "japón".

Intento este código pero parece mostrar el idioma que seleccioné previamente y de manera predeterminada es inglés.

Configuré un Middleware y necesito excluir la parte api porque tengo algunos enrutadores que hacen ping a esta dirección y el enrutador no tiene información de idioma que bloquee el sistema.

class BeforeMiddleware { /** * Handle an incoming request. * * @param /Illuminate/Http/Request $request * @param /Closure $next * @return mixed */ protected $except_urls = [ ''api/*'' ]; public function handle($request, Closure $next) { $langArr = array("en", "fr"); if (isset($_SERVER[''HTTP_ACCEPT_LANGUAGE''])) { $languages = explode('','', $_SERVER[''HTTP_ACCEPT_LANGUAGE'']); } else { $languages[0] = "en"; } if (Session::has(''locale'')) { App::setLocale(Session::get(''locale'')); } else { if (in_array($languages[0], $langArr)) App::setLocale($languages[0]); } return $next($request); } } /* end class */

Gracias por tu ayuda.