تعمل Google على ميزة ترجمة واجهة المستخدم الجديدة في Android 12 والتي يمكنها ترجمة التطبيقات تلقائيًا إلى لغتك الأم.
مع أكثر من 2.5 مليار مستخدم نشط، يعد Android نظام التشغيل الأكثر استخدامًا في جميع أنحاء العالم. على الرغم من أن نظام التشغيل نفسه تمت ترجمته إلى عشرات اللغات المختلفة، إلا أن هذا ليس هو الحال بالنسبة للعديد من تطبيقات الطرف الثالث. يمكن للشركات الكبرى توطين تطبيقاتها داخل الشركة أو الاستعانة بخدمات ترجمة احترافية، ولكن هذه الخيارات ليست مجدية اقتصاديًا للفرق الصغيرة أو مطوري التطبيقات المستقلين. في أحسن الأحوال، يمكن لفريق أصغر أو مطور تطبيق مستقل الحصول على ترجمات جماعية من المتحدثين الأصليين، وفي أسوأ الأحوال، يمكنهم استخدام خدمات الترجمة الآلية للقيام بهذه المهمة. ومع ذلك، هذا يمكن أن يتغير في أندرويد 12، حيث رأينا أدلة تشير إلى أن Google ربما تعمل على إطار عمل لترجمة واجهة مستخدم التطبيق تلقائيًا إلى اللغة الأصلية للمستخدم.
يمكن لعملية تفكيك APK في كثير من الأحيان التنبؤ بالميزات التي قد تصل في التحديث المستقبلي لأحد التطبيقات، ولكن من الممكن ألا تظهر أي من الميزات التي نذكرها هنا في إصدار مستقبلي. وذلك لأن هذه الميزات غير مطبقة حاليًا في الإصدار المباشر وقد يتم سحبها في أي وقت بواسطة المطورين في الإصدار المستقبلي.
في وقت سابق من هذا الأسبوع، حصلنا على إصدار Android 12 لم يتم إصداره والذي يحتوي على اثنين من الميزات الجديدة وتغييرات واجهة المستخدم. أثناء البحث في الإصدار، اكتشفنا عددًا كبيرًا من الفئات الجديدة في إطار العمل المتعلق بإصدار "خدمة الترجمة." بدأ بحثنا عندما اكتشفنا إذنين جديدين تمت إضافتهما إلى هذا الإصدار من Android 12: BIND_TRANSLATION_SERVICE
و MANAGE_UI_TRANSLATION
. تمتلك واجهة SystemUI الخاصة بنظام Android الإذن الأول للربط بالتطبيق الذي يحمل الإذن الأخير، والذي يتم تحديده افتراضيًا بالقيمة config_defaultTranslationService
. من المفترض أنه يمكن إعداد تطبيق مثل Google Translate أو Device Personalization Services كخدمة ترجمة، ولكن قد تفتحه Google لتطبيقات الطرف الثالث كخدمة الترجمة. MANAGE_UI_TRANSLATION
إذن له "دور" محدد كأحد مستويات الحماية المدعومة. إذا كنت تتذكر، أضاف Android 10 "الأدوار" التي تحدد التطبيقات التي يجب أن تتمتع بامتيازات معينة؛ من الممكن أن تقوم Google بإضافة "مترجم" كدور، ولكننا لا نعرف ما إذا كان يمكن منح هذا الدور للتطبيقات التي قام المستخدم بتثبيتها.
على أية حال، وجدنا إشارات لهذه الأذونات في إطار التعليمات البرمجية، حيث رصدنا دليلاً على ذلك يعمل كود الترجمة الجديد على المشاهدات داخل الأنشطة بدلاً من لقطة الشاشة أو التطبيقات الحديثة لوحة. يمكن بالفعل ترجمة النص الموجود داخل لقطات الشاشة أو لوحة التطبيقات الحديثة بواسطة Google Lens، وبالاشتراك مع خدمات تخصيص الجهاز، يمكن ترجمة النص تمت ترجمته مباشرةً من لوحة التطبيقات الحديثة. وفي الوقت نفسه، يسمح نظام نوايا Android بالفعل بالمشاركة الأساسية للنص للترجمة. ومع ذلك، يبدو هذا الإطار الجديد أكثر تعقيدًا ومنخفض المستوى، ونعتقد أنه يهدف إلى ذلك بشكل مباشر ترجمة النص داخل واجهة مستخدم التطبيق، واستبدال النص في السطر لجعل الترجمة تبدو أكثر أصالة.
لقد فحصنا أحدث الإصدارات من خدمة الترجمة من Google وخدمات تخصيص الأجهزة ولكننا لم نعثر على أي دليل على دمج واجهة برمجة التطبيقات الجديدة هذه. من المحتمل ألا تستخدم واجهة برمجة التطبيقات هذه خدمة الترجمة من Google مباشرةً، بل تستخدم نقطة نهاية مختلفة لواجهة برمجة التطبيقات. إذا تم تنفيذ هذه الميزة بما يتماشى مع توقعاتنا، فإننا نشك في أن Google ستفرض رسومًا على المستخدمين مقابل هذه الميزة. ومع ذلك، من الممكن أن يقوموا بتمكين ترجمات واجهة المستخدم التي تدعمها خدمة الترجمة من Google كميزة حصرية لـ Pixel. نظرًا لأن إطار العمل يبدو أنه قادم إلى AOSP، فمن الممكن أن يتمكن مصنعو المعدات الأصلية من تحديد خدمة الترجمة الخاصة بهم إذا كانوا لا يريدون استخدام خدمة Google.
تطبيقات الطرف الثالث مثل AllTrans لقد عرضوا لسنوات ميزة ترجمة واجهة المستخدم الخاصة بهم. مدعومة بـ Xpose Framework، تعمل هذه التعديلات بشكل مشابه للطريقة التي نعتقد أن ترجمة واجهة المستخدم لنظام Android 12 ستعمل بها، حيث يتم ربطها مباشرة بعروض التطبيق لترجمة النص واستبداله. ومع ذلك، تتطلب هذه التعديلات من المستخدمين الحصول على مفتاح API الخاص بهم لخدمة الترجمة نظرًا لأن المفتاح المشترك سيتجاوز الحد المجاني بسرعة كبيرة. مع قيام Google على ما يبدو ببناء إطار ترجمة لواجهة المستخدم مباشرة في Android 12، لن يحتاج المستخدمون بعد الآن إلى عمل روت لأجهزتهم لترجمة التطبيقات إلى لغتهم الأم. ونأمل أن يؤدي هذا إلى تسهيل الوصول إلى آلاف التطبيقات للمستخدمين في جميع أنحاء العالم.
باستخدام Xpose Framework، يتم ربط AllTrans بعروض النص داخل التطبيقات لترجمة النص باستخدام مترجم Microsoft.
سيستفيد المطورون أيضًا من الترجمات الآلية لواجهة المستخدم. يمكن للمطورين الذين ليس لديهم الموارد اللازمة لترجمة تطبيقاتهم أو الذين لا يريدون استخدام الترجمة الآلية السماح لنظام التشغيل بمعالجة الأمور. يمكن أن يؤدي إصدار تطبيق مترجم آليًا إلى مراجعات سلبية من المستخدمين الذين يلقون اللوم على المطور بسبب ضعف الترجمة، ولكن يجب على المستخدم سيؤدي توجيه نظام التشغيل بأنفسهم لترجمة التطبيق إلى قدر أقل من الإحباط حيث يفهم المستخدم بشكل أفضل مكان إلقاء اللوم على أي شيء سيئ نص مترجم.
على الرغم من أننا واثقون إلى حد ما من أن هذه الميزة تهدف إلى ترجمة واجهة المستخدم داخل التطبيقات، إلا أننا لسنا متأكدين بنسبة 100% من أن الأمر كذلك حتى نرى الميزة قيد التنفيذ. سيكون الاستخدام البديل لهذه الميزة هو ترجمة واجهة المستخدم داخل نظام التشغيل أو تطبيقات النظام فقط، ولكننا نعتقد أن هذا غير مرجح نظرًا لأن نظام التشغيل مترجم بالفعل على نطاق واسع ويمكن إجراء أي ترجمة قبل مغادرة الجهاز للمصنع أو عبر OTA تحديث. من ناحية أخرى، لا يمكن لشركة Google ومصنعي المعدات الأصلية تحديد اللغات التي يدعمها التطبيق، لذا فإن هذه الميزة ستساعد في سد الفجوة. وبالنظر إلى أن جوجل تعمل على تطوير هذه الميزة على مستوى العرض، مما يجعلها قابلة للاستخدام في جميع التطبيقات، يزيد أيضًا من احتمالية استخدامها في التطبيقات بدلاً من نظام التشغيل. ومع ذلك، مرة أخرى، لن نعرف على وجه اليقين حتى يتم إصدار هذه الميزة، وهو ما قد يحدث أو لا يحدث في إصدار Android 12 المستقر.
شكرا للمطورين ندى و kdrag0n لمساعدتهم في تحليل هذا الرمز. نشكر أيضًا برنامج PNF لتزويدنا بترخيص الاستخدام JEB المنقح، أداة هندسة عكسية احترافية لتطبيقات Android.