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

السؤال

نشر

عندي سوال كيف اخلي التطبيق يغير اللغة من غير لا ادخل على ملف الاعدادات بمجرد الضغط على  زر بالواجهه يصير اللغة تغيرت من ملف اللغة الي عرفته في lan 

ياخذ القيم من الملف ويغير من خلال الزر 

Recommended Posts

  • 0
نشر

يمكنك استخدام حزمة mcamara/laravel-localization التي تمكنك من فعل ذلك, يمكنك الذهاب اليها ومعرفة طريقة استخدامها من هنا, بداية يجب تثبيت الحزمة من خلال الأمر التالي

composer require mcamara/laravel-localization

ثم الامر التالي لانشاء ملف laravellocalization.php في المجلد config

php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"

ثم بعد ذلك في الملف Kernel.php الموجود ضمن المسار app/Http/Kernel.php يجب وضع التالي في مصفوفة routeMiddleware

'localize'                => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
        'localizationRedirect'    => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
        'localeSessionRedirect'   => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
        'localeCookieRedirect'    => \Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect::class,
        'localeViewPath'          => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class
    ];

هذه اعدادات التثبيت وبدء الاستخدام, بعد ذلك يمكنك معرفة المزيد من خلال الرابط المرفق بالاعلى

  • 0
نشر
بتاريخ الآن قال hanan fahad11:

ممكن توريني تفاصيل اكثر 

بداية يوجد لديكي في المسار التالي 

resources\lang

مجلد en يمكن ايضا إضافة مجلد ar  ومن ثم بداخل المجلدين ننشأ ملف وليكن باسم lang.php  بحيث يكون للغة العربية بهذا الشكل 

<?php 
return [
	'ID'   			=> 'ID',
	'all_record'   			=> 'جميع السجلات',
	'name'   			=> 'الأسم',
	'flname'   			=> 'الأسم الأول و الأخير',
	'email'   			=> 'الأيميل',
];
?>

و للغة الإنجليزية بهذا الشكل 

<?php 
return [
	'ID'   			=> 'ID',
	'all_record'   			=> 'All Records',
	'name'   			=> 'Name',
	'flname'   			=> 'First and last name',
	'email'   			=> 'Email',
];
?>

و من ثم يمكن إنشاء مسار لتغيير اللغة بهذا الشكل 

Route::get('lang/change', 'IndexController@change')->name('changeLang');

و تكون دالة تغيير اللغة 

public function change(Request $request)
{
        App::setLocale($request->lang);
        session()->put('locale', $request->lang); 
        return redirect()->back();
}

و ممكن ايضا نقوم بوضع وسم a لتغيير اللغة 

<a class="" href="{{ route('changeLang') }}?lang=en">English</a>
<a class="" href="{{ route('changeLang') }}?lang=ar">العربية</a>

و في ملفات views نقوم باستخدام دالة trans للتبديل بين اللغات مثل

{{ trans('lang.email') }}

 

  • 0
نشر
بتاريخ 6 دقائق مضت قال hanan fahad11:

{{ trans('lang.email') }}

كيف استخدمه لاني حطيته بس ماطلع مضبوط 

 

في مجلد lang الموجود في المجلد resources سوف تجدين مجلدين, المجلد الاول ar والمجلد الثاني en
نحن نريد المجلد ar, بداخل المجلد ar يجب ان تقومي بانشاء ملف اسمه lang.php وبداخله اكتبي التالي

<?php

return [
    'email'=> 'البريد الالكتروني'


];

الآن عندما نستخدم الدالة trans او يمكننا استبدالها بشرطتين سفليتتين "__" ثم كتابة اسم الملف واسم المفتاح فمثلا لترجمة الكلمة email يمكننا كتابة التالي

<h3>{{__('lang.email')}}</h3>


او

<h3>{{trans('lang.email')}}</h3>

الان اذا كان الموقع باللغة العربية سوف تعرض كلمة email  باللغة العربية وهي "البريد الالكتروني"
ولكن اذا كان الموقع باللغة الانجليزية سوف تعرض lang.email, اذا ما الحل عندما يكون الموقع باللغة الانجليزية؟ نقوم بنفس الحل الذي اتبعناه في اللغة العربية, في المجلد en نقوم بانشاء مجلد اسمه lang وبداخله نكتب تمام كما كتبنا في الملف lang الذي انشأناه في المجلد ar, ولكن هنا سوف نكتب القيمة باللغة الانجليزية

<?php

return [
    'email'=> 'email'


];

 

  • 0
نشر
بتاريخ 30 دقائق مضت قال hanan fahad11:

ممكن تشوف لي الملف عندي مشكلة ماضبط معي اللغة 

party3.rar

لا يوجد مشاكل فقط ينقصك فهم آلية عمل الطريقة, سوف أحاول أن أبسطها, الآن كما قلت سابقا لدينا المجلد lang, وبداخله المجلد الحاص باللغة العربية ar والمجلد الخاص باللغة الانجليزية en , بداخل المجلد ar هناك بعض الملفات , التي من ضمنها الملف app.php و auth.php وغيرها, الآن في هذه الملفات موجود بعض الكلمات وترجمتها, يمكننا عمل ملف خاص بالموقع الخاص بنا مثلا ليكن اسمه site.php, ويمكننا كتابة الكلمات وترجمتها, واكتبي بداخل الملف التالي على سبيل المثال 

<?php

return [
    'email'=> 'البريد الالكتروني'


];

الآن لنتذكر اسم الملف الذي انشأناه فهو مهم, للوصول لترجمة الكلمة email يمكننا في أي واجهة كتابة التالي

<h2>{{__('site.email')}}</h2>

اذا كان الموقع باللغة العربية سوف تعرض العبارة "البريد الالكتروني"

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...