Laravel - 如何基于会话中存储的语言显示内容

时间:2015-12-08 16:41:34

标签: php laravel session laravel-5 laravel-5.1

如果我的网站使用多种语言,例如在注册文章时,标题会有两个字段,例如,假设是葡萄牙语和英语,我应该如何创建注册和显示的逻辑基于当前语言由locale/route/{?}

设置

有了这个,我可以读取我的默认laravel文件并用死记硬背改变语言:

路线

Route::get('locale/{flag}', 'App\LocaleController@setLanguage');

控制器

class LocaleController extends AppBaseController
{
    public function setLanguage($flag)
    {
        if (in_array(strtolower($flag), config('app.locales'))) {
            Session::put('lang', $flag);
        }

        return redirect()->back();
    }
}

修改

在我的表格中,我可以使用两种或更多种语言使用相同的文字,例如:post_title_pt-brpost_title_en,如何根据当前设定的语言获得正确的标题?

2 个答案:

答案 0 :(得分:0)

当您使用这样的控制器时,您现在可以在方法AppServiceProvider的{​​{1}}中添加以下代码:

boot

答案 1 :(得分:0)

您应该为应用程序设置区域设置。 你可以通过

来做到这一点
 app()->setLocale($flag);