ما الذي يبحث عنه الفاحص
- المفاتيح الناقصة: موجودة في القالب وغائبة عن لغة ما. يُبنى التطبيق دون أخطاء، لكن مستخدميك يرون نص لغة القالب بدلًا من لغتهم.
- المفاتيح الزائدة: موجودة في ترجمة ولم تعد في القالب، وغالبًا ما تكون بقايا ميزة أُزيلت.
- القيم الفارغة: المفتاح موجود لكن ترجمته فارغة، وهو ما لا يكشفه فحص المفاتيح البسيط.
- عدم تطابق العناصر النائبة:
{name} صار {nom}، أو حُذف. وتُقرأ أيضًا العناصر النائبة داخل صيغ الجمع والاختيار في ICU.
تُتجاهَل المفاتيح التي تبدأ بـ@ (البيانات الوصفية و@@locale). الملف المرجعي هو الذي يحدّده template-arb-file في l10n.yaml، وعادةً app_en.arb: تخمّنه الأداة ويمكنك اختيار غيره.
اكتشاف المفاتيح الناقصة في تطبيق Flutter
- اجمع الملفات من مجلد
arb-dir (افتراضيًا lib/l10n).
- أفلتها كلها دفعة واحدة، بما فيها القالب.
- افتح كل لغة لترى مشكلاتها، ثم انسخ المفاتيح الناقصة بصيغة ARB: تعيد استخدام نص القالب، جاهزة للترجمة.
للفحص التلقائي مع كل بناء، يشرح دليل اكتشاف المفاتيح الناقصة في ملفات ARB الخيار untranslated-messages-file في flutter gen-l10n وسكربت CI صغيرًا. وتُشرح أخطاء عناصر ICU النائبة في دليل صيغ الجمع والعناصر النائبة.
حدود الفاحص
تقارن الأداة المفاتيح وأسماء العناصر النائبة: لا تتحقق من صياغة ICU كاملة (هذه مهمة flutter gen-l10n)، ولا تحكم على جودة الترجمة، ولا تعدّل ملفاتك أبدًا. لاستيراد مشروع كامل وترجمته وتصديره مع نسخة احتياطية، تحتاج إلى محرّر توطين مثل LocalePilot.