أقلمة واجهة المستخدم باستخدام "محرّر الترجمات"

يوفّر "محرّر الترجمة" عرضًا موحّدًا وقابلاً للتعديل لجميع مصادر السلاسل النصية التلقائية والمترجَمة .

للحصول على مقدّمة عن ترجمة تطبيقك إلى لغات مختلفة، يُرجى قراءة مقالة دعم لغات وثقافات مختلفة.

الشكل 1: محرّر الترجمة الذي يعرض نص التطبيق قبل الترجمة

مصادر السلاسل النصية

تتضمّن ملفات strings.xml مصادر السلاسل النصية لأحد المشاريع. يتضمّن مشروعك ملفًا تلقائيًا باسم strings.xml يحتوي على مصادر السلاسل النصية باللغة التلقائية لتطبيقك، وهي اللغة التي تتوقّع أن يتحدث بها معظم مستخدمي تطبيقك. يمكنك أيضًا الحصول على ملفات strings.xml مترجَمة تحتوي على مصادر السلاسل النصية للغات أخرى تريد أن يتيحها تطبيقك.

بعد إكمال ملف strings.xml التلقائي، يمكنك إضافة الترجمات بنفسك أو الدفع لخدمة احترافية لإجراء الترجمات. في كلتا الحالتَين، ننصحك بالاستفادة من ميزات "استوديو Android" لمساعدتك في إدارة النصوص القابلة للترجمة واختبارها. للحصول على معلومات عن خدمات الترجمة الاحترافية، يُرجى الاطّلاع على خدمات الترجمة.

فتح "محرّر الترجمة"

يمكنك الوصول إلى "محرّر الترجمة" من الأماكن التالية في "استوديو Android":

الفتح من عرض Android

  1. في لوحة المشروع > Android على يمين الشاشة، انقر على ModuleName > res > القيم.
  2. انقر بزر الماوس الأيمن على ملف strings.xml ، ثم انقر على فتح "محرّر الترجمة".

    يعرض "محرّر الترجمة" أزواج المفاتيح والقيم من ملف strings.xml.

    ملاحظة: عند توفّر ملفات strings.xml مترجَمة، يتضمّن مشروعك مجلدات قيم متعدّدة مقابلة لها تتضمّن لاحقات تشير إلى اللغة، مثل values-es للغة الإسبانية. يكون ملف strings.xml التلقائي دائمًا في مجلد القيم (بدون لاحقة).

يعرض الشكل 1 نص التطبيق التلقائي (باللغة الإنجليزية في هذه الحالة) في "محرّر الترجمة" لتطبيق بسيط قبل إجراء عملية الترجمة. سيظهر محتوى ملفات strings.xml المترجَمة على يسار عمود غير قابل للترجمة مع عمود واحد لكل لغة، كما هو موضّح في الشكل 2.

الفتح من داخل ملف strings.xml

يمكنك الوصول إلى محرّر الترجمة من داخل أي من ملفات strings.xml.

  1. في لوحة المشروع > Android على يمين الشاشة، انقر على ModuleName > res > القيم.
  2. انقر مرّتين على strings.xml لفتحه وتعديله.
  3. في strings.xml، انقر على الرابط فتح المحرّر في أعلى يسار الصفحة.

ضبط الصفوف غير القابلة للترجمة

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

عند النقر على غير قابل للترجمة، تتم إضافة translatable="false" إلى السطر المقابل في ملف strings.xml التلقائي. في المثال التالي، لا تتم ترجمة EasyApp في السطر العلوي لأنّه اسم المنتج.

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

إضافة اللغات وحذفها

يتوافق محرّر الترجمة مع معيار BCP 47 ويجمع بين رموز اللغة والمنطقة (البلد) في خيار واحد لعمليات الترجمة إلى لغات محلية مستهدَفة. تحدّد اللغة المحلية أكثر من اللغة. تتضمّن اللغة المحلية تنسيقًا يعتمد على البلد لعناصر مثل التاريخ والوقت والعملات والأرقام العشرية.

لإضافة لغة، اتّبِع الخطوات التالية:

  1. في محرّر الترجمة ، انقر على رمز الكرة الأرضية .
  2. من القائمة المنسدلة، اختَر اللغة التي تريد إضافتها. تظهر اللغة الجديدة في محرّر الترجمة، ويتم إضافة مجلد values-* يحتوي على ملف `strings.xml` إلى المشروع. على سبيل المثال، values-es للغة الإسبانية.

لحذف لغة، اتّبِع الخطوات التالية:

يمكنك حذف لغة في محرّر الترجمة عن طريق حذف كل قيمة في العمود (راجِع تعديل النص وإضافته وحذفه) أو حذف مجلد المشروع لتلك اللغة، على النحو التالي:

  1. في لوحة المشروع > Android على يمين الشاشة، انقر على ModuleName > res.
  2. انقر بزر الماوس الأيمن على مجلد values-* للغة التي تريد حذفها. على سبيل المثال، values-hi للغة الهندية.
  3. من القائمة، انقر على حذف لحذف المجلد وملف strings.xml.

تعديل النص وإضافته وحذفه

يمكنك إجراء عمليات على إعدادات النص مباشرةً في ملف strings.xml أو من خلال محرّر الترجمة. يوضّح هذا القسم طريقة استخدام محرّر الترجمة. في محرّر الترجمة، يمكنك تعديل النص أو إضافته أو حذفه من خلال عرض القائمة أو من خلال حقل الترجمة في أسفل محرّر الترجمة.

الشكل 2: عرض القائمة في أعلى الصفحة وحقل الترجمة في أسفلها

عرض القائمة

لتعديل النص أو إضافته، اتّبِع الخطوات التالية:

  1. انقر مرّتين على الخلية التي تريد تعديل النص فيها أو إضافته.
  2. انسخ النص والصقه باستخدام لوحة المفاتيح، أو اكتب مباشرةً في عرض القائمة إذا كانت لديك لوحة مفاتيح تتيح استخدام علامات التشكيل.
  3. انقر على مفتاح التبويب أو حرِّك المؤشر خارج الحقل.

لحذف النص، اتّبِع الخطوات التالية:

  1. انقر مرّتين على الخلية التي تريد حذفها.
  2. في عرض القائمة، حدِّد النص واضغط على حذف.
  3. انقر على مفتاح التبويب أو حرِّك المؤشر خارج الحقل.

حقل "الترجمة"

لتعديل النص أو إضافته، اتّبِع الخطوات التالية:

  1. في عرض القائمة، انقر مرة واحدة على الخلية التي تريد تعديل النص فيها أو إضافته.
  2. في حقل الترجمة ، انسخ النص والصقه باستخدام لوحة المفاتيح، أو اكتب مباشرةً في حقل الترجمة إذا كانت لديك لوحة مفاتيح تتيح استخدام علامات التشكيل.
  3. انقر على مفتاح التبويب أو حرِّك المؤشر خارج الحقل.

لحذف النص، اتّبِع الخطوات التالية:

  1. انقر مرة واحدة على الخلية التي تريد حذفها.
  2. في حقل الترجمة ، حدِّد النص واضغط على حذف.

إضافة المفاتيح وحذفها

في "محرّر الترجمة"، يعرض عمود المفتاح المعرّفات الفريدة لكل عنصر بيانات في ملفات strings.xml. يمكنك إضافة المفاتيح وحذفها من خلال "محرّر الترجمة". عند حذف مفتاح، يحذفه "محرّر الترجمة" وجميع الترجمات المرتبطة به. يستخدم "محرّر الترجمة" عملية إعادة البنية "الحذف الآمن" لحذف مفتاح، ما يتيح لك معرفة ما إذا كان نص المفتاح مستخدَمًا في مكان آخر وإجراء التعديلات اللازمة قبل حذف المفتاح. تضمن عملية إعادة البنية "الحذف الآمن" أن يظل الرمز قابلاً للتجميع بعد حذف المفتاح.

لإضافة مفتاح، اتّبِع الخطوات التالية:

  1. في محرّر الترجمة، انقر على إضافة مفتاح .
  2. في مربّع الحوار، أدخِل اسم مفتاح وقيمة تلقائية وموقع ملف strings.xml التلقائي.

    الشكل 3: إضافة مفتاح

لحذف مفتاح، اتّبِع الخطوات التالية:

  1. في "محرّر الترجمة"، اختَر المفتاح الذي تريد حذفه.
  2. انقر على إزالة المفاتيح .
  3. في مربّع حوار الحذف ، حدِّد ما إذا كنت تريد إجراء عملية حذف آمن وما إذا كنت تريد البحث في التعليقات والسلاسل النصية، ثم انقر على حسنًا.

    الشكل 4: مربّع حوار الحذف

    إذا لم تكن هناك أي مراجع (استخدامات) للمفتاح المحذوف، أو إذا كانت جميع المراجع قابلة للطي بأمان، يتم حذف المفتاح. وإلا، يعرض "محرّر الترجمة" مربّع حوار تم رصد استخدامات الذي يتضمّن معلومات عن المشاكل التي تم رصدها.

    الشكل 5: مربّع حوار الحذف

  4. انقر على عرض الاستخدامات لمراجعة ما سيتم حذفه. يعرض مربّع حوار العثور على تعارضات الحذف الآمن جميع الاستخدامات التي لا يمكن حذفها بأمان، ما يتيح لك تعديل الرمز المقابل.

    الشكل 6: الاستخدامات غير الآمنة

  5. انقر بزر الماوس الأيمن على أحد الاستخدامات لعرض قائمة السياقات، ثم انقر على الانتقال إلى المصدر لإجراء التغييرات اللازمة.
  6. في لوحة العثور على تعارضات الحذف الآمن ، انقر على إعادة تشغيل عملية الحذف الآمن للتأكّد من عدم توفّر أي استخدامات أخرى تحتاج إلى الاهتمام بها.
  7. بعد إزالة الاستخدامات، انقر على إجراء عملية إعادة البنية لحذف المفتاح.

تصحيح الأخطاء

يعرض الشكل 7 محرّر الترجمة الذي يعرض محتوى ملفات strings.xml باللغات الإنجليزية والفرنسية والإسبانية. يشير النص الأحمر إلى الأسطر التي تتضمّن أخطاء.

الشكل 7: يشير النص الأحمر إلى حالة خطأ يجب إصلاحها

لتصحيح خطأ، مرِّر مؤشر الماوس فوق النص الأحمر لعرض شرح للمشكلة وحلّها.

عند إجراء تغييرات في محرّر الترجمة، يتم تعديل الملفات الأساسية strings.xml وفقًا للتغييرات التي أجريتها. عند إجراء تغييرات في ملف strings.xml ، يتم تعديل العمود المقابل في محرّر الترجمة وفقًا للتغييرات التي أجريتها.

في ما يلي أمثلة على التصحيحات في محرّر الترجمة:

  • يوضّح الشكل 7 أنّ صف app_name تم وضع علامة في مربّع غير قابل للترجمة ، ولكن تم تقديم ترجمة باللغة الإسبانية. لحذف الترجمة الإسبانية، انقر على **حذف** لتصحيح الخطأ.
  • يوضّح الشكل 7 أنّ صف next_page لا يتضمّن ترجمة باللغة الفرنسية. استخدِم لوحة المفاتيح لنسخ Page Suivante ولصقها في الخلية لتصحيح الخطأ. تنسخ عملية النسخ واللصق باستخدام لوحة المفاتيح النص مع أي علامات تشكيل إلى الخلية.

إدارة النصوص القابلة للترجمة واختبارها

يوفر نظام Android الأساسي و"استوديو Android" عدة ميزات لمساعدتك في إدارة نص التطبيق القابل للترجمة واختباره. تتضمّن هذه الميزات خيارات لمساعدتك في استهداف المشاكل المتعلقة بالنصوص المكتوبة من اليمين إلى اليسار، مثل النصوص العربية أو العبرية. يتيح لك اختبار النص القابل للترجمة إجراء تعديلات على نص واجهة المستخدم وتنسيقه قبل إرسال رسائلك إلى مستودع المصدر لإرسالها للترجمة لاحقًا.

دعم اللغات المكتوبة من اليمين إلى اليسار

تتعامل مكتبة Jetpack Compose مع التنسيقات المكتوبة من اليمين إلى اليسار بشكل أساسي. تم تصميم معدِّلات التنسيق وواجهات برمجة التطبيقات استنادًا إلى مفاهيم اتجاهية مثل start وend بدلاً من الاتجاهات المطلقة مثل left وright. عند تغيير لغة النظام إلى لغة محلية مكتوبة من اليمين إلى اليسار، تعكس Compose هذه التنسيقات تلقائيًا.

لكي يتعرّف تطبيقك على اللغة المحلية المكتوبة من اليمين إلى اليسار ويؤدي إلى تفعيل عملية النسخ المطابق هذه، عليك الموافقة على ذلك باستخدام ملف البيان الخاص بتطبيقك.

لتفعيل دعم اللغات المكتوبة من اليمين إلى اليسار، اتّبِع الخطوات التالية:

  1. افتح ملف AndroidManifest.xml.
  2. أضِف السمة android:supportsRtl="true" إلى العنصر <application>:
<manifest ... >
    <application
        ...
        android:supportsRtl="true">
    </application>
</manifest>

لمزيد من المعلومات عن طريقة تعامل Compose مع تنسيق النص وعكسه والإعدادات المخصّصة للغات المكتوبة من اليمين إلى اليسار ، يُرجى الاطّلاع على مقالة استخدام اللغات المكتوبة من اليمين إلى اليسار.

ضبط اتجاه النص يدويًا

في Jetpack Compose، لا يمكنك استخدام نافذة "الخصائص" المرئية لفرض اتجاهات التنسيق أو النص. تتعامل Compose تلقائيًا مع عملية عكس اللغات المكتوبة من اليمين إلى اليسار استنادًا إلى اللغة المحلية للنظام.

ومع ذلك، إذا كنت بحاجة إلى إلغاء الاتجاه يدويًا لعنصر نص معيّن (على سبيل المثال، عرض سلسلة نصية مكتوبة من اليسار إلى اليمين في تنسيق مكتوب من اليمين إلى اليسار)، يمكنك تمرير كائن TextDirection إلى TextStyle.

تشمل القيم المسموح بها ما يلي:

لمزيد من المعلومات عن تنسيق النص وضبط اتجاهات النص يدويًا في Compose، يُرجى الاطّلاع على مقالة تنسيق النص.

استخدام السلاسل النصية المترجَمة في تطبيقك

بعد إضافة السلاسل النصية وترجمتها باستخدام "محرّر الترجمة"، يتم تعديل ملفات res/values/strings.xml الأساسية تلقائيًا ويمكنك استخدام الموارد المترجَمة مباشرةً في واجهة المستخدم.

للتعرّف على كيفية عرض النص المترجَم والتعامل مع اللغات المكتوبة من اليمين إلى اليسار بشكل أساسي واستخدام @Preview لاختبار لغات محلية ولغات محلية زائفة مختلفة، يُرجى الاطّلاع على قسم "السلاسل النصية" في مقالة الموارد في Compose.

اللغات المحلية الزائفة

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

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

مراجع إضافية

عرض المحتوى