Ajax Laravel 5.5多语言验证

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

请告诉我,我遇到了一个问题。有一个基于Laravel 5.5的站点。该网站有多种语言(两种语言en/ru)。对于我正在使用的多语言:

  • dimsav/laravel可翻译
  • mcamara/laravel本地化
在resources/lang/ru目录中添加了语言文件。问题是表单的验证。该站点在模式窗口中有一个反馈表单,使用ajax(发送和验证),错误消息仅以默认语言显示,默认语言为en。我尝试在没有ajax帮助的情况下从表单发送数据,一切正常,消息以俄语和英语显示

reoutes/web.php

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') ]);
      
      要获得一些已翻译的字符串,请使用此帮助器的点符号


      谢谢您的帮助,但您的解决方案不起作用(谢谢!我知道,但不幸的是我还有另一个问题