x32x01
  • بواسطة x32x01 ||
كنت شغال على مشروع بستخدم فيه مكتبة easy_localization، واجهتني مشكلة رخمة جدًا في حاجة اسمها الـ Pluralization.

طيب إيه الـ plural ده؟ 🤔

ببساطة هو اللي بيحدد إزاي النص يتعرض للمستخدم بناءا على الرقم.
مثلا: غرفة - غرفتين - 5 غرف - 11 غرفة، وهكذا على حسب اللغة.

المشكلة ظهرت لما حاولت أعرض "5 غرف"، لكن اللي طلع كان "5 غرفة"! 😤 واكتشفت انه بيجيب القيمة اللي في other بدل ما يجيب قيمة few!

المهم، قدمت issue وبدأت أحلل سبب المشكلة، واكتشفت إن كل لغة ليها قواعد معينة للـ plural rules. مثلا: العربي فيه zero, one, two, few, many, other، لكن الإنجليزي بيكتفي بـ one & other ...وهكذا

حلو أوي بس ليه الكلام ده مش شغال معايا مع إنه كان شغال كويس في المكتبة قبل كده، فإيه اللي حصل؟ 🤔

بصيت عالكود ووصلت في النهاية إن السبب كان في متغير اسمه ignorePluralRules .. المتغير ده لو ب true بيخلي المكتبة تتجاهل قواعد اللغة النحوية تماما وتستخدم قواعد "افتراضية" بتلغي الـ few والـ many وده كان سبب المشكلة!

المشكلة كمان ان المتغير ده قيمته الافتراضية ب true!

والمشكلة التانية إن الموضوع ده مش مكتوب نهائيا في ال documentation بتاع المكتبة أصلا! .. يعني بالبلدي كده المكتبة فيها كود بيظبط القواعد النحوية لكل اللغات تقريبا، ومع ذلك المكتبة لغت الميزة دي بشكل افتراضي!

فطلعت إيلون ماسك اللي جوايا وقلت لازم انقذ الكوكب من المشكلة دي 😎😂😂
عدّلت ال documentation ووضحت فيه فايدة ignorePluralRules.

وعملت unit test للغة العربية في كل الحالات مع وبدون ميزة ال ignorePluralRules وعملت تيست كمان للغتين تانيين ورفعت PR للمكتبة وان شاء الله يقبلوه 😁

الخلاصة: لو حد واجهته المشكلة دي كل اللي هيعمله انه هيضيف السطر ده وهو بيعمل initialization للمكتبة في ال main.dart:
Code:
ignorePluralRules: false,
وبس كده :)
21212121.jpg
منقول عن أحد الأعضاء
 

المشاركات المتشابهة

x32x01
الردود
0
المشاهدات
5
x32x01
x32x01
x32x01
الردود
0
المشاهدات
6
x32x01
x32x01
x32x01
الردود
0
المشاهدات
6
x32x01
x32x01
x32x01
الردود
0
المشاهدات
7
x32x01
x32x01
x32x01
الردود
0
المشاهدات
8
x32x01
x32x01
الوسوم : الوسوم
مشكلة فى اللغة

الدخول أو التسجيل السريع

نسيت كلمة مرورك؟

آخر المشاركات

أحدث المنتجات

إحصائيات المنتدى

المواضيع
1,530
المشاركات
1,716
أعضاء أكتب كود
191
أخر عضو
Ahmed123132
عودة
أعلى