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

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

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

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

موارد السلسلة

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

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

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

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

الفتح من شاشة Android

  1. في لوحة المشروع > Android على يمين الصفحة، اختَر ModuleName > الدقة > القيم.
  2. انقر بزر الماوس الأيمن على ملف strings.xml، واختر فتح محرِّر الترجمات.

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

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

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

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

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

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

ملاحظة: إذا نقرت على الرابط إخفاء الإشعار، يختفي الرابط فتح المحرِّر. لإعادته مرة أخرى، أغلِق المشروع ثم أعِد فتحه.

الفتح من "Design Editor" (محرر التصميم)

يمكنك فتح محرّر الترجمات من "محرّر تصميم" "محرّر التنسيقات" لتعديل النص التلقائي والمترجَم ليلائم تنسيقك بشكل أفضل. ولمزيد من المعلومات عن تبديل اللغات في "محرّر التصميم"، راجِع عرض النص المترجَم في "محرّر التصميم".

  1. في لوحة المشروع > Android على يمين الصفحة، اختَر ModuleName > الدقة > التنسيق.
  2. انقر نقرًا مزدوجًا على content_main.xml لفتحه للتعديل.
  3. انقر على علامة التبويب Design (تصميم) في أسفل يمين الصفحة لعرض محرّر Design (التصميم).
  4. في "محرّر التصميم"، اختَر القائمة المنسدلة اللغة من القائمة المنسدلة.
  5. انقر على تعديل الترجمات .

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

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

عند وضع علامة في المربّع Untranslatable، يضيف السطر المقابل في ملف strings.xml التلقائي translatable="false". في المثال التالي، لم تتم ترجمة 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 > دقة.
  2. انقر بزر الماوس الأيمن على المجلد values-* للّغة التي تريد حذفها. على سبيل المثال، values-hi للدلالة على اللغة الهندية.
  3. من القائمة المنسدلة، اختَر حذف لحذف المجلد وملف strings.xml الخاص به.

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

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

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

العرض على شكل قائمة

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

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

لحذف نص، نفِّذ ما يلي:

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

حقل الترجمة

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

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

لحذف نص، نفِّذ ما يلي:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

عرض النص المُترجَم في "محرِّر التصميم"

للاطّلاع على طريقة عرض النص المترجَم في تنسيق التطبيق، يمكنك تبديل النص بين النسخة التلقائية والنسخة المُترجَمة في "أداة تعديل التصميم" على النحو التالي:

  1. في لوحة المشروع > Android على يمين الصفحة، اختَر ModuleName > الدقة > التنسيق.
  2. انقر نقرًا مزدوجًا على content_main.xml لفتحه للتعديل.
  3. انقر على علامة التبويب Design (تصميم) في أسفل يمين الصفحة لعرض محرّر Design (التصميم).
  4. في "محرّر التصميم"، اختَر القائمة المنسدلة اللغة من القائمة المنسدلة.
  5. انقر على رمز تعديل الترجمات .
  6. اختَر اللغة التي تريد استخدامها لعرض تطبيقك.

    الشكل 8. القائمة المنسدلة للغات مع اختيار الإسبانية

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

الشكل 9. أداة "محرّر التصميم" تعرض النص المترجَم باللغة الإسبانية

تعيين "محرر التصميم" على اللغة الافتراضية

لإعادة ضبط اللغة على اللغة التلقائية، اختَر es > اللغة .

الشكل 10. ضبط اللغة التلقائية

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

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

إعادة ضبط مشروعك للحصول على دعم من اليمين إلى اليسار

يتضمن "استوديو Android" أمر إعادة الهيكلة يتيح دعم النص ثنائي الاتجاه في عناصر TextView و ConstraintLayout وLinearLayout حتى يمكن لتطبيقاتك عرض النص والسماح للمستخدمين بتعديله بالنص من اليسار إلى اليمين (LTR) والنص من اليمين إلى اليسار (RTL). يوفّر الأمر أيضًا إمكانية النسخ المطابق التلقائي لتنسيقات واجهة مستخدم التطبيق وجميع التطبيقات المصغّرة للعرض. للاطّلاع على تغيّر اتجاه النص وانعكاس التنسيق على الشاشة، يجب أيضًا ضبط خصائص اتجاه النص والتنسيق في أداة تعديل التنسيق.

يوضّح الإجراء التالي كيفية إعادة ضبط مشروعك للحصول على دعم من اليمين إلى اليسار:

  1. اختَر إعادة البناء > إضافة دعم من اليمين إلى اليسار متى أمكن لعرض مربّع الحوار الذي يظهر في الشكل 11.

    الشكل 11. إضافة دعم من اليمين إلى اليسار

    • إذا كان العنصر <application> في ملف AndroidManifest.xml لا يتضمن السمة android:supportsRTL="true"، يجب وضع علامة في مربّع الاختيار Update AndroidManifest.xml.
    • إذا كانت قيمة targetSdkVersion في تطبيقك تبلغ 17 أو أعلى، اختَر استبدال الخصائص اليسرى/اليمنى بخصائص البدء/الانتهاء. في هذه الحالة، يجب أن تستخدم السمات "start" و "end" بدلاً من "right" و "right". على سبيل المثال، يتم تغيير android:paddingLeft إلى android:paddingStart.
    • إذا كان عمر targetSdkVersion لتطبيقك 16 عامًا أو أقل، اختَر إنشاء إصدارات -v17. في هذه الحالة، يجب أن يستخدم ملف XML مجموعتَي السمات. على سبيل المثال، يجب أن يستخدم ملف XML كلاً من android:paddingLeft وandroid:paddingStart.
  2. لعرض نافذة العثور على معاينة إعادة البناء، انقر على تشغيل.

    الشكل 12. الاطّلاع على المعاينة

  3. انقر على إجراء إعادة البناء.

لمزيد من المعلومات حول إعادة هيكلة مشروعك بحيث يكون متوافقًا مع التنسيق من اليمين إلى اليسار (RTL)، يُرجى الاطّلاع على التوافق مع اليمين من اليسار إلى اليمين في نظام Android 4.2.

خصائص اتجاه النص والتنسيق

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

للاطّلاع على تغيير اتجاه النص ونسخ التنسيق المطابق، يجب أيضًا إعادة ضبط المشروع للتوافق مع التنسيق RTL. في اللغة الإنجليزية، يؤدي تغيير اتجاه النص إلى نقل علامات الترقيم فقط من الجانب الأيمن إلى الجانب الأيسر من النص، على سبيل المثال، تصبح كلمة "Hello World!" (مرحبًا بالعالم) "!Hello World". لكي يتم تبديل النص من اليمين إلى اليسار (RTL)، يجب استخدام لغة من اليمين إلى اليسار في التطبيق. إذا أردت استخدام اللغة الإنجليزية وتبديل النص إلى RTL لأغراض الاختبار، يجب استخدام اللغات الصورية. اللغات الزائفة مستقلة عن أمر إعادة البناء وخصائص الاتجاه.

للوصول إلى خصائص الاتجاهات واستخدامها، اتّبِع الخطوات التالية:

  1. في محرّر التنسيق، اختَر أداة نصية.
  2. افتح نافذة المواقع وابحث عن موقع RTL الذي تريد استخدامه.

    لضبط قيمة الخاصية، حدِّد أحد الخيارات التالية:

    • firstStrong: الإعداد التلقائي للعرض الجذر. ويحدد أول حرف توجيهي قوي اتجاه الفقرة. وإذا لم يكن هناك حرف توجيهي قوي، يكون اتجاه الفقرة هو اتجاه التنسيق الذي تم حلّه في العرض.
    • anyRtl: يكون اتجاه الفقرة هو RTL إذا كان يحتوي على أي حرف RTL قوي، وبخلاف ذلك، يكون LTR إذا كان يحتوي على أي أحرف LTR قوية. وفي حال عدم توفّر أي منهما، يكون اتجاه الفقرة هو اتجاه التنسيق الذي تم حلّه في العرض.
    • ltr: اتجاه الفقرة هو LTR.
    • rtl: اتجاه الفقرة هو RTL.
    • locale: يأتي اتجاه الفقرة من لغة النظام.
    • اكتساب: تلقائي. استخدِم الاتجاه الذي تم ضبطه في العنصر الرئيسي.
  3. لمراجعة النص والتنسيق المعكوسين، شغِّل التطبيق.

اللغات الزائفة

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

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