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

اضافة اللغة في laravel

Atheer Bis

السؤال

الان انا سويت موقع مايُقارب ٤٠٪؜ منه وفي نص عملي تم طلبي من قِبل الجهة المستفيدة ان الموقع يكون يدعم اللغتين عربي وانجليزي وانا فقط مسويه بالانجليزي

هل في طريقة لاضافة اللغة العربية بدون مااعيد الشغل من البداية ؟ مع العِلم انّ منزله بعض من القوالب اللي تدعم اللغة الانجليزية فقط

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

Recommended Posts

  • 0

فى الاصدار رقم 10 من لارافيل يمكنك استخدام هذا الامر لانشاء ملفات الترجمة

php artisan lang:publish 

سيقوم بانشاء مجلد lang وبداخله مجلد en يحتوى على ملفات الترجمة .

ناتى الان لاضافة لغه جديدة لنفترض مثلا اللغة العربية ستقوم بانشاء مجلد جديد يسمى ar فى مجلد lang وتضع نفس الملفات فى مجلد en ولكن تقوم بترجمتها . واذا اردت اضافة ملف جديد يجب اضافة فى جميع المجلدات فى مجلد lang .

ثانيا لاستخدام الترجمة نستخدم الدالة __() وبين الاقواس نضع اسم الملف ثم نقطة ثم المفتاح الخاص بالترجمة ..فمثلا 

{{__('validation.string')}}

هنا نخبر لارافيل ان تقوم باستخراج الترجمة من ملف validation و مفتاح يسمى string . 

لنفترض ان هذا هو ملف ال validation فى مجلد en

<?php

return [
	"string" => "english"
]
?>

و هذا هو ملف ال validation فى مجلد ar

<?php

return [
	"string" => "عربى"
]
?>

اذا لارافيل سيقوم بطباعة كلمة عربى اذا كانت اللغه العربية و طباعة كلمة english اذا كانت اللغه الانجليزية .

ناتى الان كيف سيعرف لارافيل اللغة الان .

Route::get('/test/{locale}', function (string $locale) {
    if (! in_array($locale, ['en', 'ar'])) {
        abort(400);
    }
    App::setLocale($locale);
});

هنا فى تعريف ال route نستخدم local حيث هو نوع اللغه فاذا كان العنوان test/en اذا اللغه الانجليزية واذا كان test/ar فاذا اللغه العربية.

لذلك لن تقوم باعادة جميع الشغل فقط ملفات ال views ستقوم باستخدام الدالة __()  للترجمة وبالنسبة للقوالب ستختلف فقط فى طريقة العرض من اليسار الى اليمين فيجب عليك استخدام قالب يدعم الاتجاهين .

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

  • 0

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

    public function up()
    {
        Schema::create('colors', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name_en', 50);
            $table->string('color_code',50)->nullable();
        });
    }

هذه الجدول به حقل واحد فقط لحفظ الاسم فاما سيكون باللغه العربيه او باللغه الانجليزيه فيجب تحدبث الجدول بهذه الطريقه 

        Schema::create('colors', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name_en', 50);
            $table->string('name_ar', 50);
            $table->string('color_code',50)->nullable();
    
            $table->index('name_en');
            $table->index('name_ar');
        });

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

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

  • 0
بتاريخ 8 ساعة قال محمد_عاطف:

فى الاصدار رقم 10 من لارافيل يمكنك استخدام هذا الامر لانشاء ملفات الترجمة

php artisan lang:publish 

سيقوم بانشاء مجلد lang وبداخله مجلد en يحتوى على ملفات الترجمة .

ناتى الان لاضافة لغه جديدة لنفترض مثلا اللغة العربية ستقوم بانشاء مجلد جديد يسمى ar فى مجلد lang وتضع نفس الملفات فى مجلد en ولكن تقوم بترجمتها . واذا اردت اضافة ملف جديد يجب اضافة فى جميع المجلدات فى مجلد lang .

ثانيا لاستخدام الترجمة نستخدم الدالة __() وبين الاقواس نضع اسم الملف ثم نقطة ثم المفتاح الخاص بالترجمة ..فمثلا 

{{__('validation.string')}}

هنا نخبر لارافيل ان تقوم باستخراج الترجمة من ملف validation و مفتاح يسمى string . 

لنفترض ان هذا هو ملف ال validation فى مجلد en

<?php

return [
	"string" => "english"
]
?>

و هذا هو ملف ال validation فى مجلد ar

<?php

return [
	"string" => "عربى"
]
?>

اذا لارافيل سيقوم بطباعة كلمة عربى اذا كانت اللغه العربية و طباعة كلمة english اذا كانت اللغه الانجليزية .

ناتى الان كيف سيعرف لارافيل اللغة الان .

Route::get('/test/{locale}', function (string $locale) {
    if (! in_array($locale, ['en', 'ar'])) {
        abort(400);
    }
    App::setLocale($locale);
});

هنا فى تعريف ال route نستخدم local حيث هو نوع اللغه فاذا كان العنوان test/en اذا اللغه الانجليزية واذا كان test/ar فاذا اللغه العربية.

لذلك لن تقوم باعادة جميع الشغل فقط ملفات ال views ستقوم باستخدام الدالة __()  للترجمة وبالنسبة للقوالب ستختلف فقط فى طريقة العرض من اليسار الى اليمين فيجب عليك استخدام قالب يدعم الاتجاهين .

فين اكتب الامر هذا الامر php artisan lang:publish ؟

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

  • 0
بتاريخ 8 دقائق مضت قال Atheer Bis:

فين اكتب الامر هذا الامر php artisan lang:publish ؟

أي أوامر خاصة بالمشروع نقوم بتنفيذها في منفذ الأوامر (التيرمنال) في مسار المجلد الرئيسي للمشروع الذي يوجد به ملف package.json و composer.json

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

  • 0
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

أي أوامر خاصة بالمشروع نقوم بتنفيذها في منفذ الأوامر (التيرمنال) في مسار المجلد الرئيسي للمشروع الذي يوجد به ملف package.json و composer.json

image.thumb.png.169b89e07d4a94e1b4711fa537b34ed1.pngجربت ولا ضبط / الملف package.json و composer.json موجودة داخل الـ cm image.thumb.png.64b9078efdbe32784a87259d1ddf19fd.png

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

  • 0
بتاريخ 4 دقائق مضت قال Atheer Bis:

جربت ولا ضبط / الملف package.json و composer.json موجودة داخل الـ cm 

لديك مشكلة في مسار متغير البيئة لمترجم php لديك، حيث لا يتم التعرف على أمر php، عليك إضافة مجلد php الذي يقع في المسار التالي:

c:\xampp\php

إلى System variables كالتالي:

نبحث عن System variables في شريط البحث بالأسفل في الويندوز،  ثم:

add-environment-variables.webp.9e505759547e9fc41d282f121a918c73.webp

add-new-path-screen.jpg.443789a1cb94c1830609eaf7a5a34e28.jpg

add-new-environment-path.webp.6b79399ffe96e9bf522f99b05647dc86.webp

ثم غلق منفذ الأوامر في vscode من خلال الضغط على أيقونة سلة المهملات وإعادة تشغيله لقراءة متغيرات البيئة الجديدة.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...