Ajax Laravel 5.5多语言验证
请告诉我,我遇到了一个问题。有一个基于Laravel 5.5的站点。该网站有多种语言(两种语言en/ru)。对于我正在使用的多语言:Ajax Laravel 5.5多语言验证,ajax,laravel,Ajax,Laravel,请告诉我,我遇到了一个问题。有一个基于Laravel 5.5的站点。该网站有多种语言(两种语言en/ru)。对于我正在使用的多语言: dimsav/laravel可翻译 mcamara/laravel本地化 在resources/lang/ru目录中添加了语言文件。问题是表单的验证。该站点在模式窗口中有一个反馈表单,使用ajax(发送和验证),错误消息仅以默认语言显示,默认语言为en。我尝试在没有ajax帮助的情况下从表单发送数据,一切正常,消息以俄语和英语显示 reoutes/web.ph
- dimsav/laravel可翻译
- mcamara/laravel本地化
Route::group(['prefix' => LaravelLocalization::setLocale()], function(){
Route::get('/', 'PagesController@getProfile')->name('profile');
Route::get('/skills', 'PagesController@getSkills')->name('skills');
Route::get('/portfolio', 'PagesController@getPortfolio')->name('portfolio');
Route::get('/resume', 'PagesController@getResume')->name('resume');
Route::post('/contact', 'PagesController@contact');
});
控制器
public function contact(Request $request){
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'message' => 'required'
]);
if ($validator->passes()) {
Mail::to('mycontactform@mail.ru')->send(new Contact($request));
return response()->json(['success'=>'Message sent successfully!']);
}
return response()->json(['error'=>$validator->errors()->all()]);
}
js
$(文档).ready(函数(){
$(“.btn发送消息”)。单击(函数(e){
e、 预防默认值();
$.ajax({
url:“/contact”,
类型:'POST',
数据:$(“#联系方式”).serialize(),
beforeSend:function(){
$(“#加载”).show();
$(“.fa纸平面”).hide();
},
完成:函数(){
$(“#加载”).hide();
$(“.fa纸平面”).show();
},
成功:功能(数据){
if($.isEmptyObject(data.error)){
printsuccesmsg();
}否则{
printErrorMsg(data.error);
}
}
});
});
var$success_msg=$(“.print success msg”);
var$error_msg=$(“.print error msg”);
函数printsuccesmsg(){
$success_msg.html('Message sent successfully!');
$success_msg.css('display','block');
$success_msg.delay(5000).fadeOut(350);
$(“#联系方式”)[0]。重置();
}
函数printErrorMsg(msg){
$error_msg.find(“ul”).html(“”);
$error_msg.css('display','block');
$.each(消息、函数(键、值){
$error_msg.find(“ul”).append(“”+value+” ”);
});
$error_msg.delay(5000).fadeOut(350);
}
});
形式
错误:
{!!Form::open(['id'=>'contact-Form'])
发送消息
{!!Form::close()!!}
使用它返回一个适应$locale的URL
因此,您的ajax代码将是
$.ajax({
url: "{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(),'/contact') }}",
type:'POST',
data: $('#contact-form').serialize(),
beforeSend: function() {
$("#loading").show();
$(".fa-paper-plane").hide();
},
complete: function() {
$("#loading").hide();
$(".fa-paper-plane").show();
},
success: function(data) {
if($.isEmptyObject(data.error)){
printSuccessMsg();
}else{
printErrorMsg(data.error);
}
}
});
当您返回响应时,请尝试使用此帮助程序
\uuuu('translated\u string')
要使用此帮助程序,您必须在这些文件夹中创建一些resources/lang/en
和resources/lang/en
例如:
return response()->json(['success'=> __('translate.success_message') ]);
文件resources/lang/en/translate.php
应包含此数组
return [
'success_message' => 'Message sent successfully!',
];
return [
'success_message' => 'Сообщение успешно отправлено!',
];
文件:
resources/lang/ru/translate.php
应包含此数组
return [
'success_message' => 'Message sent successfully!',
];
return [
'success_message' => 'Сообщение успешно отправлено!',
];
例如:
return response()->json(['success'=> __('translate.success_message') ]);
要获得一些已翻译的字符串,请使用此帮助器的点符号
谢谢您的帮助,但您的解决方案不起作用(谢谢!我知道,但不幸的是我还有另一个问题