我打算建立一个多语言网站(3种语言)。我很好奇,有什么方法或规则如何正确地做到这一点?我的乐器是Laravel 5.4。
我遇到的问题:
我问,因为我想知道如何维护和处理我的代码。
答案 0 :(得分:0)
您应该创建一个中间件并将其添加到一个将保存所有需要转换的路由的组中。在中间件中,您检查会话中的语言并进行设置,以便当前请求可以使用它。
public function handle($request, Closure $next)
{
if( !Session::has('locale' )){
$browserLanguage = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); //read browser language
if ( array_key_exists($browserLanguage, Config::get('languages')) ) {
Session::set('locale', $browserLanguage);
} else {
Session::set('locale', 'en');
}
}
//Simply set language from session
App::setlocale(Session::get('locale'));
return $next($request);
}
当用户想要选择特定语言时,您可以为他们提供可用语言列表,然后将所选语言设置为会话
if (array_key_exists($language, Config::get('languages'))) {
Session::set('locale', $language);
}
对于表格,如果您确定只有3种语言,那么您可以创建一个包含4列的单个表格
key en fr es
hi hi salut ola