use*_*320 7 multilingual laravel laravel-blade
我刚开始使用Laravel 5.4,在login.blade.php中我有
我不喜欢在html代码中放置纯文本,是否有解决方案使所有文本在单独的lang文件中动态使用它们?
谢谢
小智 36
该resources/lang文件夹包含本地化文件.文件名对应于将使用的视图.要从此文件中获取值,只需使用以下代码:
Lang::get('localization_file_name.variable_name');
如果您想要实现语言选择的可能性,您只需要几个简单的步骤来应用:
在config/app.php添加以下代码:
'locale' => 'ru',
'locales' => ['ru', 'en'],
Run Code Online (Sandbox Code Playgroud)
语言环境的名称可以是任意名称.
在app/Http/Middleware创建一个名为的新文件Locale.php.该文件的内容应该是这样的:
<?php
namespace App\Http\Middleware;
use Closure;
use App;
use Config;
use Session;
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);
}
}
Run Code Online (Sandbox Code Playgroud)在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();
});
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
25104 次 |
| 最近记录: |