【发布时间】:2020-07-09 10:02:15
【问题描述】:
我正在尝试在我的网站中添加翻译,但没有翻译。 我制作了下面给出的本地化控制器
class LocalizationController extends Controller {
public function index($locale) {
App::setLocale($locale);
//store the locale in session so that the middleware can register it
session()->put('locale', $locale);
return redirect()->back();
}
}
我还做了一个本地化中间件
本地化.php
class Localization {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
App::setLocale(env('APP_LOCALE'));
return $next($request);
}
}
我在resources/langfolder 中创建了语言 en、ro、pk 等文件夹,在这些语言文件夹中,我创建了提供相应翻译的文件。例如,对于罗马尼亚语,下面给出了翻译
ro.json 文件
{
"Hi there!": "Salut",
"How are you doing?": "Ce mai faci?",
"This is basic example of how you use Laravel Localizations": "Acesta este un exemplu de bază despre cum puteți utiliza localizarea pârghiei"
}
我的路线是:
Route::get('lang/{locale}', 'LocalizationController@index');
但我找不到确切的问题,为什么它没有设置我在下拉菜单中选择的语言环境?
任何帮助将不胜感激...谢谢
【问题讨论】:
-
您不应该从中间件的会话中检索语言环境吗?目前你使用的是
env(),你不应该在配置文件之外使用它。 -
@Remul 我该怎么做..我是新手..所以帮助我
-
在你的中间件中可能有类似
App::setLocale($request->session()->get('locale', config('app.locale')));的东西。 -
@Remul 如何在刀片中访问意味着我的网站内容是如何翻译的?
-
在刀片中访问 what?您需要知道的一切都在文档here 中。
标签: laravel laravel-5 translation