如果我的网站使用多种语言,例如,在注册一篇文章时,标题将有两个字段,例如,假设是葡萄牙语和英语,我应该如何创建基于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-br
和post_title_en
,如何根据当前设置的语言获得正确的标题?
当您像这样使用控制器时,您现在可以在AppServiceProvider
中的方法boot
中添加以下代码:
$lang = Session::get('lang', null)
if ($lang) {
App::setLocale($lang);
}
您应该为应用程序设置一个区域设置。你可以通过做到这一点
app()->setLocale($flag);