انتقل إلى المحتوى
Locale Gaps

فحص الترجمات للتطبيقات متعددة اللغات

كل نص يحصل على تأشيرته قبل أن يعبر الحدود.

يقارن Locale Gaps ملف اللغة المصدر بكل ترجمة ويوقف كل ما سينكسر على الشاشة: المفاتيح الناقصة، والنصوص الفارغة أو غير المترجمة، والعناصر النائبة المفقودة، والوسوم المعطوبة، وصيغ الجمع التي تحتاجها اللغة ولا يحتويها الملف. ثم يسلّم المترجمين ملفا يضم ما تبقى من عمل بالضبط.

ما الذي يفحصه
أختام الدخولP<LOCALE<GAPS

ما هو

أداة لفحص ملفات ترجمة التطبيقات. تقرأ JSON وYAML و⁦.properties⁩ و⁦Apple .strings⁩ و⁦gettext .po⁩ أو قائمة مفاتيح بسيطة، وتقارن كل لغة باللغة المصدر.

لمن

لمطوري الواجهات وتطبيقات الجوال، ومديري المنتجات الذين يطلقون بعدة لغات، ومسؤولي التوطين، والمترجمين الذين يريدون قائمة واضحة بدلا من لقطة شاشة لمفتاح خام.

ما المشكلة التي يحلها

المفتاح الناقص يُظهر للمستخدم نصا مثل ⁦cart.checkout⁩، والعنصر النائب المفقود يطبع ⁦{{amount}}⁩ بدل السعر، وغياب صيغة جمع يجعل الجملة الروسية أو العربية خاطئة. سترى كل ذلك قبل الإطلاق.

افحص ملفات الترجمة

الصق الملف المصدر، وأضف مربعا لكل لغة، ثم اضغط افحص الترجمات. لا يغادر أي شيء هذه الصفحة.

اللغة المصدر

الملف الذي يجب أن تطابقه كل اللغات الأخرى. يقبل JSON المتداخل، وYAML بجذر مثل ⁦en:⁩، وأسطر ⁦key=value⁩، وأسطر ⁦"key" = "value";⁩، وملفات ⁦.po⁩ أو قائمة مفاتيح بسيطة.

الترجمة 1

الصق ملف هذه اللغة. يمكن أن تختلف صيغته عن المصدر.

خيارات

الترجمات الطويلة تتجاوز غالبا حدود الأزرار والقوائم. القيمة 1.6 تعني أطول بنسبة 60 بالمئة.

افصل بينها بفواصل، مثل أسماء العلامة التجارية أو المنتج. الأرقام والرموز وأسماء العلامات المكونة من كلمة واحدة متجاهلة أصلا.

لم يُفحص شيء بعد

الصق ملفا مصدرا وترجمة واحدة على الأقل، أو حمّل التطبيق التجريبي لترى تقريرا كاملا.

ما الذي يفحصه

كل قاعدة موجودة لأنها كسرت شاشة حقيقية في مكان ما. لا تحتاج أي منها إلى نموذج ذكاء اصطناعي أو تخمين.

  1. المفاتيح الناقصة والفارغة

    يجب أن يوجد كل مفتاح مصدر في الترجمة وأن يحمل نصا، وإلا رأى المستخدم ⁦cart.checkout⁩ أو زرا فارغا.

  2. النص غير المترجم

    يُعلَّم النص المطابق للمصدر ما لم يكن رقما أو رمزا أو رابطا أو كلمة سمحت بها، مثل اسم علامتك التجارية.

  3. العناصر النائبة

    يجب أن تطابق المتغيرات مثل ⁦{{name}}⁩ و⁦{name}⁩ و⁦%s⁩ و⁦%1$d⁩ و⁦%{name}⁩ و⁦:name⁩ المصدر تماما. المتغير الذي تغيّر اسمه لا يطبع شيئا.

  4. صيغ الجمع

    تأتي قواعد الجمع من متصفحك، وهي القواعد نفسها التي تستخدمها التطبيقات. الروسية تحتاج one وfew وmany، والعربية تحتاج ست صيغ. تُفحص رسائل ICU ولواحق i18next مثل ⁦items_few⁩.

  5. الوسوم

    يجب أن تبقى وسوم مثل ⁦<a>⁩ و⁦<b>⁩ و⁦<0>⁩ بعد الترجمة، وإلا اختفت الروابط والتأكيد.

  6. الطول والمفاتيح الزائدة والمكررة

    الترجمات الطويلة جدا والمفاتيح الموجودة في الترجمة وحدها والمفاتيح المعرّفة مرتين تُدرج بأولوية أقل.

طريقة الاستخدام

  1. الصق الملف المصدر

    عادة الإنجليزية. افتح الملف أو الصق محتواه. تتحول المفاتيح المتداخلة إلى مسارات مثل ⁦checkout.pay⁩.

  2. أضف كل لغة

    اكتب رمز اللغة والصق ملفها. يمكن لكل لغة أن تستخدم صيغتها الخاصة.

  3. اضغط افحص الترجمات

    تحصل كل لغة على ختم يبين نسبة المفاتيح الموجودة والنصوص الجاهزة للإطلاق، مع عدد لكل نوع من المشكلات.

  4. أصلح أو سلّم

    رشّح النتائج، ثم نزّل ملف الترجمة المتبقي لكل لغة أو ملف CSV الكامل.

  5. احتفظ بالملاحظة

    انسخ ملاحظة الإصدار إلى طلب الدمج أو قائمة فحص الإصدار. تثبت البصمة أن التقرير لم يُعدَّل.

ما لا يفعله

  • لا يحكم على جودة الترجمة أو أسلوبها. الجملة الخاطئة المكتملة تمر.
  • لا يترجم شيئا ولا يرسل النصوص إلى أي خدمة.
  • يغطي دعم YAML الشكل المعتاد لملفات اللغة: مفاتيح متداخلة وقيم من سطر واحد.
  • لا تُفحص بعد قواعد الجنس وselect في رسائل ICU، بل الجمع فقط.

أسئلة

هل تُرفع ملفاتي إلى أي مكان؟

لا. القراءة والفحص يجريان في هذه الصفحة. أغلق اللسان وسيختفي النص.

لماذا تظهر كلمة ألمانية بأنها غير مترجمة مع أنها متطابقة في اللغتين؟

بعض الكلمات متطابقة فعلا. أضفها إلى كلمات يمكن أن تبقى كما هي وأعد الفحص.

من أين تأتي قواعد الجمع؟

من ⁦Intl.PluralRules⁩ في متصفحك، وهو يتبع بيانات ⁦Unicode CLDR⁩ التي تستخدمها معظم التطبيقات.

هل يمكنني فحص المفاتيح وحدها دون نصوص؟

نعم. الصق قوائم مفاتيح بسيطة. يُبلَّغ عن المفاتيح الناقصة والزائدة وتُتخطى فحوص النص.

تواصل مع المطوّر

لديك سؤال أو فكرة أو عرض عمل؟ راسلني على X أو Telegram.

ادعم المطوّر

إذا وفّرت عليك هذه الأداة وقتًا، يمكنك إرسال إكرامية إلى عنوان EVM هذا من محفظتك.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA