What's the best logic for switching language in Laravel?

后端 未结 8 1631
遥遥无期
遥遥无期 2020-12-23 02:29

I\'m using Laravel localization to provide two different languages. I\'ve got all the path stuff set up, and mydomain.com/en/bla delivers English and stores the \'en\' sessi

8条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-23 02:44

    I've solved my problem by adding this to the before filter in routes.php:

    // Default language ($lang) & current uri language ($lang_uri)
    $lang = 'he';
    $lang_uri = URI::segment(1);
    
    // Set default session language if none is set
    if(!Session::has('language'))
    {
        Session::put('language', $lang);
    }
    
    // Route language path if needed
    if($lang_uri !== 'en' && $lang_uri !== 'he')
    {
        return Redirect::to($lang.'/'.($lang_uri ? URI::current() : ''));
    }
    // Set session language to uri
    elseif($lang_uri !== Session::get('language'))
    {
        Session::put('language', $lang_uri);
    }
    
    // Store the language switch links to the session
    $he2en = preg_replace('/he\//', 'en/', URI::full(), 1);
    $en2he = preg_replace('/en\//', 'he/', URI::full(), 1);
    Session::put('he2en', $he2en);
    Session::put('en2he', $en2he);
    

提交回复
热议问题