更改 Laravel 5 中的语言
Change language in Laravel 5
我刚开始使用 Laravel 5.4,在 login.blade.php 我有
我不喜欢在 html 代码中放入纯文本,是否有解决方案可以使单独的 lang 文件中的所有文本动态使用它们?
谢谢
resources/lang
文件夹包含本地化文件。文件名与将要使用的视图相对应。为了从此文件中获取值,您可以简单地使用以下代码:
`Lang::geConfig;
使用会话;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
//$raw_locale = Session::get('locale');
$raw_locale = $request->session()->get('locale');
if (in_array($raw_locale, Config::get('app.locales'))) {
$locale = $raw_locale;
}
else $locale = Config::get('app.locale');
App::setLocale($locale);
return $next($request);
}
}
在app/Http/Kernel.php
中在$middlewareGroups=[ ... ]
中添加以下行:
\App\Http\Middleware\Locale::class,
在routes/web.php
中添加:
Route::get('setlocale/{locale}', function ($locale) {
if (in_array($locale, \Config::get('app.locales'))) {
session(['locale' => $locale]);
}
return redirect()->back();
});
Laravel 有一个 localization 模块。
基本上,您创建一个文件,例如:resources/lang/en/login.php
并放入
return [
'header' => 'Login'
];
并且在您的模板中使用 @lang('login.header')
而不是 Login
。
您的 /resources/lang/en
目录中可以有尽可能多的文件,并使用 @lang
blade 指令将您的文件名(不带扩展名)和所需的值用点分隔。
试试这个!
{{ @lang('messages.login') }}
现在在语言文件下添加登录密钥及其值,如下所示
return['login'=>'Login']; // write inside messages file
并像 'en','nl','us'
一样设置您的 APP 配置局部变量
App::setLocale(language name); like 'en','nl','us'
我刚开始使用 Laravel 5.4,在 login.blade.php 我有
我不喜欢在 html 代码中放入纯文本,是否有解决方案可以使单独的 lang 文件中的所有文本动态使用它们?
谢谢
resources/lang
文件夹包含本地化文件。文件名与将要使用的视图相对应。为了从此文件中获取值,您可以简单地使用以下代码:
`Lang::geConfig; 使用会话;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
//$raw_locale = Session::get('locale');
$raw_locale = $request->session()->get('locale');
if (in_array($raw_locale, Config::get('app.locales'))) {
$locale = $raw_locale;
}
else $locale = Config::get('app.locale');
App::setLocale($locale);
return $next($request);
}
}
在
app/Http/Kernel.php
中在$middlewareGroups=[ ... ]
中添加以下行:\App\Http\Middleware\Locale::class,
在
routes/web.php
中添加:Route::get('setlocale/{locale}', function ($locale) { if (in_array($locale, \Config::get('app.locales'))) { session(['locale' => $locale]); } return redirect()->back(); });
Laravel 有一个 localization 模块。
基本上,您创建一个文件,例如:resources/lang/en/login.php
并放入
return [
'header' => 'Login'
];
并且在您的模板中使用 @lang('login.header')
而不是 Login
。
您的 /resources/lang/en
目录中可以有尽可能多的文件,并使用 @lang
blade 指令将您的文件名(不带扩展名)和所需的值用点分隔。
试试这个!
{{ @lang('messages.login') }}
现在在语言文件下添加登录密钥及其值,如下所示
return['login'=>'Login']; // write inside messages file
并像 'en','nl','us'
App::setLocale(language name); like 'en','nl','us'