I have an almost fresh installation of Lumen.
I have a POST
route which leads to one Controller. In the request I send lang
parameter with a string value.
public function form(Request $request)
{
if ($request->has('lang')) {
app('config')->set('app.locale', $request->input('lang'));
}
return view('form');
}
I have one folder more in my /resources/lang/
folder called bg
. In this folder I have simple file which has an array just like in resources/lang/en/validation.php
- called static.php
.
In the view I'm displaying I have few lines that say:
<input type="text" name="email" value="" class="input-default" placeholder="{{trans('static.enter_email')}}"/>
The text I've set in those lang files in resources/lang/...
are properly displayed, but I cannot change the locale before displaying the form.
For example, if in my dotenv file I set:
APP_LOCALE=en
And load the view the strings in resources/lang/en/static.php
are loaded.
If I change the APP_LOCALE
to bg
and load the view again, I get the strings from resources/lang/bg/static.php
.
All I want is to set the locale before rendering the view, which doesn't seem to work with the code (in my controller) I provided above.
Also I couldn't find any information about localization in Lumen on the official site, but I suppose it supports such, since trans()
is working.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…