Laravel 拉维定位
我对Laravel的本地化系统非常着迷,但我不知道我的代码出了什么问题 我刚刚写了一个语言选择器,在文档的开头,你会看到一个函数来获取浏览器的默认语言,它将获取默认语言 语言模板默认保存在Laravel 拉维定位,laravel,localization,laravel-5,Laravel,Localization,Laravel 5,我对Laravel的本地化系统非常着迷,但我不知道我的代码出了什么问题 我刚刚写了一个语言选择器,在文档的开头,你会看到一个函数来获取浏览器的默认语言,它将获取默认语言 语言模板默认保存在/resources/lang/*Language*/messages.php文件的数组中。 我真的需要你的帮助,因为我看不到任何错误 <html> <head> <?php //get Browser default language $lang =
/resources/lang/*Language*/messages.php文件的数组中。
我真的需要你的帮助,因为我看不到任何错误
<html>
<head>
<?php
//get Browser default language
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
App::setlocale($lang);
?>
</head>
<body>
<div class="container">
@yield('content')
<div class="well text-center">
<h1><?php echo trans('Welcome') ?></h1>
</div>
@section('content.welcome')
<div class="row text-center">
<a href="<?php App::setlocale("de") ?>">Deutsch</a>
<label> | </label>
<a href="<?php App::setlocale("en") ?>">English</a>
<label> | </label>
<a href="<?php App::setlocale("it") ?>">Italiano</a>
<label> | </label>
<a href="<?php App::setlocale("es") ?>">Español</a>
<label> | </label>
<a href="<?php App::setlocale("fr") ?>">Français</a>
<label> | </label>
<a href="<?php App::setlocale("jp") ?>">日本人</a>
<label> | </label>
<a href="<?php App::setlocale("ru") ?>">Pусский</a>
</div>
@show
</div>
@section('footer')
<nav>
<a href="#"> © <?php echo date("Y"); ?></a>
<ul >
<li >
<a href="#"><?php echo trans('Contact') ?></a>
</li>
</ul>
</nav>
@show
</body>
@产量(‘含量’)
@节('content.welcome')
|
|
|
|
|
|
@展示
@节(“页脚”)
-
@展示
据我所知,您需要修改当前的方法。所以,这里是您可以用于项目的示例 .Env
APP_LOCALE=en
config/app.php
'locale' => env('APP_LOCALE', 'en'),
HTML
<ul class="dropdown-menu" role="menu">
<li>{!! link_to('lang/en', trans('menus.language-picker.langs.en')) !!}</li>
<li>{!! link_to('lang/es', trans('menus.language-picker.langs.es')) !!}</li>
<li>{!! link_to('lang/fr-FR', trans('menus.language-picker.langs.fr-FR')) !!}</li>
<li>{!! link_to('lang/it', trans('menus.language-picker.langs.it')) !!}</li>
<li>{!! link_to('lang/pt-BR', trans('menus.language-picker.langs.pt-BR')) !!}</li>
<li>{!! link_to('lang/ru', trans('menus.language-picker.langs.ru')) !!}</li>
<li>{!! link_to('lang/sv', trans('menus.language-picker.langs.sv')) !!}</li>
</ul>
语言控制器
namespace App\Http\Controllers;
class LanguageController extends Controller
{
function languageRoute($lang)
{
session()->put('locale', $lang);
return redirect()->back();
}
}
localemidware
get('lang/{lang}', 'LanguageController@languageRoute');
namespace App\Http\Middleware;
use Closure;
class LocaleMiddleware
{
protected $languages = ['en', 'es', 'fr-FR', 'it', 'pt-BR', 'ru', 'sv'];
public function handle($request, Closure $next)
{
if(session()->has('locale') && in_array(session()->get('locale'), $this->languages))
{
app()->setLocale(session()->get('locale'));
}
return $next($request);
}
}
将中间件添加到kernel.php
最后,我的lang文件夹看起来像
en
es
fr-FR
it
pt-BR
ru
sv
每个文件夹包含:
alerts.php
auth.php
crud.php
labels.php
menus.php
navs.php
pagination.php
passwords.php
roles.php
strings.php
validation.php
希望,这个例子对您有很大帮助,但它只是一个示例,您仍然可以根据需要进行更新。如果仍然有什么困惑,请告诉我,我将尝试更新问题的更多细节。根据我的理解,您需要修改您当前的方法。所以,这里是您可以用于项目的示例 .Env
APP_LOCALE=en
config/app.php
'locale' => env('APP_LOCALE', 'en'),
HTML
<ul class="dropdown-menu" role="menu">
<li>{!! link_to('lang/en', trans('menus.language-picker.langs.en')) !!}</li>
<li>{!! link_to('lang/es', trans('menus.language-picker.langs.es')) !!}</li>
<li>{!! link_to('lang/fr-FR', trans('menus.language-picker.langs.fr-FR')) !!}</li>
<li>{!! link_to('lang/it', trans('menus.language-picker.langs.it')) !!}</li>
<li>{!! link_to('lang/pt-BR', trans('menus.language-picker.langs.pt-BR')) !!}</li>
<li>{!! link_to('lang/ru', trans('menus.language-picker.langs.ru')) !!}</li>
<li>{!! link_to('lang/sv', trans('menus.language-picker.langs.sv')) !!}</li>
</ul>
语言控制器
namespace App\Http\Controllers;
class LanguageController extends Controller
{
function languageRoute($lang)
{
session()->put('locale', $lang);
return redirect()->back();
}
}
localemidware
get('lang/{lang}', 'LanguageController@languageRoute');
namespace App\Http\Middleware;
use Closure;
class LocaleMiddleware
{
protected $languages = ['en', 'es', 'fr-FR', 'it', 'pt-BR', 'ru', 'sv'];
public function handle($request, Closure $next)
{
if(session()->has('locale') && in_array(session()->get('locale'), $this->languages))
{
app()->setLocale(session()->get('locale'));
}
return $next($request);
}
}
将中间件添加到kernel.php
最后,我的lang文件夹看起来像
en
es
fr-FR
it
pt-BR
ru
sv
每个文件夹包含:
alerts.php
auth.php
crud.php
labels.php
menus.php
navs.php
pagination.php
passwords.php
roles.php
strings.php
validation.php
希望,这个例子对您有很大帮助,但它只是一个示例,您仍然可以根据需要进行更新。如果仍然有问题,请告诉我,我将尝试更新问题的更多细节。我们也看不到任何错误。你可能想提供这些信息,或者至少提供一些关于问题所在的信息。这样我就可以单击这些链接,但不会加载翻译。这就是重点。我们也看不到任何错误。你可能想提供这些信息,或者至少提供一些关于问题所在的信息。这样我就可以单击这些链接,但不会加载翻译。这就是重点,我做到了。现在我得到了答案:调用未定义的函数link_to()。我真的不知道该链接到哪里,或者如何处理这个函数。我做到了。现在我得到了答案:调用未定义的函数link_to()。我真的不知道链接到哪里,或者如何处理这个函数。