嗨。我目前在routes
Route::get('locale/{locale}', function ($locale) {
\Session::put('locale', $locale);
return redirect()->back();
});
用于更改语言。
我想在这样的SESSION
集合之前检查语言的存在。
Route::get('locale/{locale}', function ($locale) {
if(!exist($locale)){
\Session::put('locale', 'en');
}
else{
\Session::put('locale', $locale);
}
return redirect()->back();
});
如何创建类似于上述功能的功能?
上面的函数只是一个示例,它不正确。
答案 0 :(得分:3)
这是否必要要确定。如果给定的语言环境完全缺少或仅缺少该特定标识符,Laravel将退回到默认语言。
我可以想到一种简单的方法来检查特定语言环境是否有翻译:
if (file_exists(resource_path("lang/$locale"))) {
// Locale directory exists
}
答案 1 :(得分:0)
另一种解决方案是使用 Lang::hasForLocale()
,如果您确定该文件始终以每种语言存在。例如:如果你总是 some-keys.php
在每个语言环境文件夹中,你可以做
Use Lang;
if (Lang::hasForLocale('some-keys', $locale)) {
//
}