【问题标题】:translate site content based on select menu click根据选择菜单点击翻译网站内容
【发布时间】:2018-12-26 16:13:21
【问题描述】:

该选择允许用户从 3 种语言(英语、西班牙语和德语)中选择一种。目标是,如果用户选择英语,则站点的所有内容都变为英语,其他语言也一样。

但是,它不起作用。不会出现错误,但是当用户在选择菜单中选择一种语言时,不会翻译网站内容。你知道为什么吗?

语言控制器:

class LanguageController extends Controller
{
    public function changeLanguage(Request $request)
    {
        if(Session::has(locale)){
            session()->put('locale', $request->language);}
        else{
            session()->put('locale', 'en');
        }

        return redirect()->back();
    }
}

HTML:

    <form method="post" action="{{route('site.translate')}}" id="translate">
      {{csrf_field()}}
      <select name="language" id="language">
        <option value="en">English</option>
        <option value="de">German</option>
        <option value="es">Spanish</option>
      </select>
    </form>

LocaleMiddleware:

    <?php

    namespace App\Http\Middleware;

    use Closure;

    class LocaleMiddleware
    {

        protected $languages = ['en','fr','es', 'de'];


        public function handle($request, Closure $next)
        {
            if(!session()->has('locale'))
            {
                session()->put('locale', $request->getPreferredLanguage($this->languages));
            }

            app()->setLocale(session('locale'));

            return $next($request);
        }
    }

在选择菜单更改时提交表单的代码:

var myFormName = "translate";
$('#language').on('change', function() {
            document.forms[myFormName].submit();
        });

【问题讨论】:

  • 试试这个package
  • 既然您已经在使用jQuery,为什么不使用$("#translate").submit() 而不是document.forms[myFormName]
  • 谢谢,但同样的错误。
  • 谢谢,这个包对于在 "Route::group(['prefix' => LaravelLocalization::setLocale()], function()" 内创建所有站点路由是必需的?

标签: jquery laravel


【解决方案1】:

在您的 HTML 代码中,您可以尝试使用 id="language" 代替 name="language" 吗? jQuery 代码中的选择器实际上期望 id 是“语言”,而不是名称。

【讨论】:

  • 谢谢,我更新了这个问题,我已经有了,但不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2011-09-04
  • 2020-02-01
相关资源
最近更新 更多