0 Adnane Kadri نشر 5 مارس 2023 أرسل تقرير نشر 5 مارس 2023 حزمة laravel-translatble من spatie تقوم أصلا بإعادة الترجمة الموافقة للغة المفعلة الحالية عن طريق قراءة المفتاح بشكل مباشر: $product->name; ولا حاجة لاستعمال مفتاح اللغة الحالية في ذلك. يمكنك على كل حال استعمال التابع getTranslation لقراءة الترجمة الموافقة للغة معينة: $product->getTranslation('name', 'en'); أما عن السياق الذي تستخدمينه في جلب الترجمات أو وضعها فهو سياق لا يختص بالحزمة التي تستعملينها، فالتوابع الموصوفة موجودة في حزمة laravel-translatable من Astrotomic في حين أن السياق المطلوب هو ذلك الخاص ب laravel-translatble من spatie. والتوابع الموصوفة في الأولى تختلف عن دلالة استخدامها في الثانية وهو ما ينتج المشكلة التي تحدث معك بطبيعة الحال. تعرفي على الفروقات ما بينهما عن طريق توثيقاتهما الرسمية: Astrotomic / laravel-translatable spatie/laravel-translatable اقتباس
0 Hafsa Aly نشر 6 مارس 2023 الكاتب أرسل تقرير نشر 6 مارس 2023 بتاريخ 21 ساعة قال Adnane Kadri: حزمة laravel-translatble من spatie تقوم أصلا بإعادة الترجمة الموافقة للغة المفعلة الحالية عن طريق قراءة المفتاح بشكل مباشر: $product->name; ولا حاجة لاستعمال مفتاح اللغة الحالية في ذلك. يمكنك على كل حال استعمال التابع getTranslation لقراءة الترجمة الموافقة للغة معينة: $product->getTranslation('name', 'en'); أما عن السياق الذي تستخدمينه في جلب الترجمات أو وضعها فهو سياق لا يختص بالحزمة التي تستعملينها، فالتوابع الموصوفة موجودة في حزمة laravel-translatable من Astrotomic في حين أن السياق المطلوب هو ذلك الخاص ب laravel-translatble من spatie. والتوابع الموصوفة في الأولى تختلف عن دلالة استخدامها في الثانية وهو ما ينتج المشكلة التي تحدث معك بطبيعة الحال. تعرفي على الفروقات ما بينهما عن طريق توثيقاتهما الرسمية: Astrotomic / laravel-translatable spatie/laravel-translatable 1 اقتباس
0 Adnane Kadri نشر 6 مارس 2023 أرسل تقرير نشر 6 مارس 2023 بتاريخ 2 ساعة قال Hafsa Aly: بمكان ما في ملف العرض المعني تقومين باستدعاء التابع getTranslations وتعطينه سلسلة نصية كمعامل ثان عوض مصفوفة، أظنك تقصدين استعمال التابع getTranslation وليس getTranslations. ابحثي عن موضع الخطأ وأصلحيه. 1 اقتباس
0 Mustafa Suleiman نشر 6 مارس 2023 أرسل تقرير نشر 6 مارس 2023 بتاريخ 2 ساعة قال Hafsa Aly: الخطأ يحدث بسبب استخدام نوع البيانات الخاطئ للمعامل الثاني في دالة "getTranslations" في الصف "Product" من النموذجات (Models) في Laravel. يتوقع أن يكون المعامل الثاني من نوع "Zarray"، ولكن تم تمرير نص (string) بدلاً من ذلك، الأمر الذي يؤدي إلى حدوث هذا الخطأ. يجب تحديد قيمة المعامل الثاني باستخدام النوع الصحيح "Zarray"، وذلك بتمرير مصفوفة اللغات المسموح بها في النظام كمصفوفة من الأعراف الأساسية: $allowedLocales = ['en', 'fr', 'ar']; // مثال لمصفوفة اللغات المسموح بها $translations = $product->getTranslations($attribute, $allowedLocales); وبهذه الطريقة، يتم تمرير مصفوفة اللغات المسموح بها بشكل صحيح إلى دالة "getTranslations"، ويمكن تجنب حدوث هذا الخطأ. يجب تعديل الكود ليتوافق مع هذا التنسيق. 1 اقتباس
السؤال
Hafsa Aly
وما سبب الخطأ هنا
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.