如何在 Laravel 5.3 中获取当前的语言环境
Posted
技术标签:
【中文标题】如何在 Laravel 5.3 中获取当前的语言环境【英文标题】:How to fetch current locale in view in Laravel 5.3 【发布时间】:2017-05-21 05:43:15 【问题描述】:我正在制作一个双语应用程序。我对每种语言都使用相同的路线,但我对两种语言都使用不同的视图。每当我想重定向到我想通过 route('test.route', 'en')
的路线时。在我传递en
的地方,我想从视图中获取当前的语言环境值,然后将其传递给路由。请帮忙。
【问题讨论】:
您必须获取“en”的值(为什么不考虑会话变量),然后您可以执行以下操作:code
route('test.route', [ 'route'=>$variable_holding_route_value])
【参考方案1】:
首先创建一个区域设置路由和控制器:
Route::get('/locale/lang', 'LocaleController@setLocale')->name('locale');
class LocaleController extends Controller
public function setLocale($locale)
if (array_key_exists($locale, Config::get('languages')))
Session::put('app_locale', $locale);
return redirect()->back();
现在您可以轻松检查每个页面:
$locale = app()->getLocale();
$version = $locale == 'en' ? $locale . 'English' : 'Bangla';
【讨论】:
【参考方案2】:试试这个。它将提供您的应用程序中设置的语言环境
Config::get('app.locale')
编辑:
要在刀片中使用它,请使用如下所示,以在刀片中回显您当前的语言环境。
Config::get('app.locale')
如果你想在它周围的刀片中做一个 if 条件,它会变成,
@if ( Config::get('app.locale') == 'en')
'Current Language is English'
@elseif ( Config::get('app.locale') == 'ru' )
'Current Language is Russian'
@endif
要获取当前语言环境,
app()->getLocale()
【讨论】:
在刀片中?我可以像@if (Config::get('app.locale'))
一样使用它吗?
在你的刀片模板中你可以像这样使用它 Config::get('app.locale')
@FahadIqbalAhmadKhan app.locale
将始终设置为 something 所以@if
不会很有用。永远都是真的。
这将获取可能与当前语言环境不同的配置语言环境。要获取当前语言环境,您应该使用App::getLocale()
或App::isLocale('...')
。 Localization。您还可以使用 app()->getLocale()
,在 Blade 中为 app()->getLocale()
。以上是关于如何在 Laravel 5.3 中获取当前的语言环境的主要内容,如果未能解决你的问题,请参考以下文章
如何使用获取参数将 laravel (5.3) 路由重定向到其他路由
在 Laravel 5.3 中从 SQL Server 获取多个结果集
任何想法如何使用 vue js 和 vue 路由器在 laravel 5.3 中进行基于会话的身份验证