我根据指示调整了app.php:
'locale' => 'ru',
'fallback_locale' => 'en',
但在首次访问该网站时,始终显示英文版。因此,基于俄罗斯的用户总是需要点击"俄罗斯"按钮查看网站的俄语版本。(使用Session::put('lang', $lang)
创建语言切换并重定向到/)。
我也尝试在App::before
过滤器中使用处理会话语言,但没有运气:它以俄语显示所有数据库内容,但trans('message.<word>')
中的所有内容仍为英文(代码现在在过滤器中注释。 PHP)。
项目可在github上找到(查看您可能怀疑原因的文件)。
网站地址www.izutov.com(有&#34;英文&#34;&#34;俄语&#34;左上角的按钮) Thnx提前!
答案 0 :(得分:1)
这就是我在Laravel 4中设置语言选择所做的:
app / filters.php中的
App::before(function($request) {
Route::matched(function($route, $request) {
if($route->getName() != 'admin') { // don't do it for admin area, (for example)
$language = $_ENV['FALLBACK_LOCALE'];
$lgs = explode(',', $_ENV['LANGUAGES']); // your set of languages
// get the default browser language with the $request object
$browserLg = substr($request->server->get('HTTP_ACCEPT_LANGUAGE'), 0, 2);
// language set from route (for example /en/some-url)
$requestLg = $request->segment(1);
# if the language called in url request matches your set of languages
if (null !== $requestLg && in_array($requestLg, $lgs)) {
$language = $requestLg;
# default browser lg
} else {
if(in_array($browserLg, $lgs)) {
$language = $browserLg;
}
}
// set the validated language
$_ENV['LOCALE'] = $language;
Config::set('locale',$language);
App::setLocale($language);
// share it with views if you want
View::share('locale', $language);
});
});