اذهب إلى المحتوى
  • 0

إرسال فورم تغيير اللغة laravel

ابراهيم الخليل سماني

السؤال

السلام عليكم,

هذا مثال وجدته مستخدم في موقع آخر أردت أن استفيد منه لكنه يبدو أنه مخزن لقائمة اللغات في قاعدة بيانات 

                <select class="langSel form-control" >
                    <option value="">@lang('Select One')</option>
                    @foreach($language as $item)
                        <option value="{{$item->code}}" @if(session('lang') == $item->code) selected  @endif>{{__($item->name) }}</option>
                    @endforeach
                </select>

هنا ما في أي شيء يرسل لكن كيف تتغير اللغة لاأرى الا متغيير وقيم تعرض,

أما أنا فقد أنشأت طبقة وسيطة للتحقق من قيمة session الموجةدة في الجلسة وتغيير local  الى الافتراضي ان لم تكن مخزنة 

وأنشأت متحكم لتغيير ب local session و local  يحتوي على معامل $local سؤالي في الموجه ماهو الرابط الذي اضعه وكيف أمرر المعامل هل مثلًا :

    Route::get('/setLang{$local}', 'SwichLanguage::class , swichLang')->name('swichLang');

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

النسبة للمثال الذي أرفقته، يحتمل ان يكون هنالك اسناد وظيفة تغيير اللغة عن طريق الأجاكس مثلا الى حدث تغيير العناصر في القائمة. على سبيل المثال:

var mySelect = document.getElementById('#mySelect');

mySelect.onchange = (event) => {
     var lang = event.target.value;
     
     // changeLanguageViaAjax(lang);
}

أما بالنسبة لما قمت به انت، فهو صحيح يحتاج فقط تصويبا. تمرير معامل يكون كـ:

Route::get('/setLang/{local}' ..

أيضا المعامل الثاني الممرر الى التابع get يكون اما كـ:

Route::get('/setLang/{local}' ,[SwichLanguage::class , 'swichLang']);

او:

Route::get('/setLang/{local}' ,'SwichLanguage@swichLang']);

كتسمية سليمة اكثر لهذا المسار يمكنك انشاء تسمية ديناميكية بحقن قيمة المتغير local:

->name('switchLanguage' ,'{local}')

ليكون كاملا:

Route::get('/setLang/{local}' ,[SwichLanguage::class , 'swichLang'])->name('swicthLanguage' ,'{local}');

يكون الاستعمال مباشرة بحقن الرابط كـ:

<a href="{{ route('switchLanguage' , 'ar') }}"> عربي </a>
<a href="{{ route('switchLanguage' , 'en') }}"> عربي </a>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...