مولّد صيغ الجمع ICU لملفات ARB في Flutter

اختر لغاتك: تعرض الأداة فئات الجمع التي تتطلبها كل لغة، مع أعداد توضيحية، وتولّد رسالة ICU جاهزة للصق في ملفات ARB. مجانًا، بلا تسجيل، ويبقى كل شيء في متصفحك.

أنشئ رسالة جمع

اللغات

ثم تحقّق من أن كل ترجمة تحتفظ بعنصرها النائب

LocalePilot تطبيق سطح مكتب يفتح كل ملفات ARB، ويقارن عناصر ICU النائبة في كل ترجمة بالمصدر، وينبّه إلى المفاتيح الناقصة، ويصدّر مع نسخة احتياطية. التطبيق في مرحلة اللمسات الأخيرة لنظام macOS: اترك بريدك الإلكتروني لتعرف موعد الإطلاق.

لماذا تختلف صيغة الجمع من لغة إلى أخرى

تتبع الفئات zero وone وtwo وfew وmany وother قواعد CLDR لكل لغة. في الإنجليزية لا تعني one إلا 1؛ وفي الفرنسية تشمل 0 و1؛ وتضيف الروسية والبولندية few وmany؛ وتستخدم العربية الفئات الست كلها؛ وليس لليابانية إلا فئة واحدة هي other. لذلك تصبح الرسالة ذات الفرعين المكتوبة للإنجليزية ناقصة بمجرد ترجمتها.

تقرأ الأداة هذه القواعد في متصفحك (Intl.PluralRules): الفئات والأعداد التوضيحية المعروضة هي فئات اللغة نفسها، دون جدول يحتاج إلى صيانة.

فخّ ‎=1 مع gen-l10n

يصبح الفرع =1 فئة one في الشيفرة التي يولّدها flutter gen-l10n. وفي الفرنسية تنطبق هذه الفئة على الصفر أيضًا: مع count = 0 ستظهر عبارة «1 article restant». فضّل فئة one مع العدد داخل النص، أو أضف فرع =0: تقترحه الأداة خانة اختيار. التفاصيل في دليل صيغ الجمع والعناصر النائبة في ICU.

كيف تستخدم النتيجة

  1. انسخ سطر "key": "{count, plural, …}" الخاص بكل لغة إلى ملف app_xx.arb المقابل.
  2. أضف بيانات @key الوصفية مرة واحدة، في ملف القالب.
  3. شغّل flutter gen-l10n: غياب فرع other أو قوس غير مغلق يوقف التوليد مع ذكر اسم الملف.

للتحقق بعد ذلك من أن أي ترجمة لم تحذف عنصرها النائب أو تُعِد تسميته، استخدم فاحص المفاتيح الناقصة في ملفات ARB.

حدود الأداة

تولّد الأداة البنية لا الترجمة: أنت من يكتب نص كل صيغة. ولا تعالج رسائل select ولا صيغ الجمع المتداخلة، ولا تضاعف علامات الاقتباس المفردة إن فعّلت use-escaping في l10n.yaml.

الأسئلة الشائعة

ما فئات الجمع التي أحتاجها للعربية؟

الفئات الست كلها: zero (0)، وone (1)، وtwo (2)، وfew (3 إلى 10)، وmany (11 إلى 99)، وother (100 ومضاعفاتها، والكسور). تعرض الأداة أعدادًا توضيحية لكل فئة.

لماذا فرع other إلزامي؟

يرفض flutter gen-l10n صيغة جمع بلا فرع other ويوقف التوليد مع ذكر اسم الملف. تضيفه الأداة دائمًا.

ما الفرق بين ‎=1 وone؟

في الشيفرة المولّدة يصبح ‎=1 فئة one، وهي في الفرنسية تشمل الصفر أيضًا. ضع العدد في فرع one أو أضف ‎=0.

هل يُرسَل نصي إلى خادم؟

لا. تُجمَّع الرسائل داخل الصفحة اعتمادًا على قواعد الجمع في متصفحك؛ لا يُرسَل شيء.

هل تعمل مع لغة غير موجودة في القائمة؟

نعم: اكتب رمزها (مثل cs أو sv) في الحقل الحر. تقبل الأداة أي رمز يتعرّف عليه متصفحك.

ما الفرق بين هذه الأداة وLocalePilot؟

تكتب هذه الأداة رسالة جمع واحدة. أما LocalePilot فتطبيق سطح مكتب، في مرحلة اللمسات الأخيرة لنظام macOS، يفتح كل ملفات ARB ويفحص عناصر ICU النائبة في كل ترجمة قبل التصدير.

احصل على إشعار عند الإطلاق

يجري وضع اللمسات الأخيرة على LocalePilot. اترك بريدك الإلكتروني لنُعلمك عند إطلاقه.

  • macOS 12 أو أحدث · Ollama أو LM Studio اختياريان
  • واجهة التطبيق متوفرة بالإنجليزية والفرنسية والإسبانية والإيطالية والبرتغالية.