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

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

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

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

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

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

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

فتح "أداة تعديل الترجمات"

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

الفتح من شاشة عرض Android

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

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

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

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

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

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

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

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

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

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

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

إعداد الصفوف التي لا يمكن ترجمتها

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

عند وضع علامة في المربّع Untranslatable (غير قابلة للترجمة)، تتم إضافة 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 > دقة.
  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 > res > التنسيق.
  2. انقر نقرًا مزدوجًا على content_main.xml لفتحه للتعديل.
  3. انقر على علامة التبويب تصميم في أسفل يمين الصفحة لعرض محرّر التصميم.
  4. في "محرِّر التصميم"، اختَر القائمة المنسدلة اللغة .
  5. انقر على تعديل الترجمات .
  6. اختَر اللغة التي تريد استخدامها لعرض تطبيقك.

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

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

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

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

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

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

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

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

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

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

يوضح الإجراء التالي كيفية إعادة هيكلة مشروعك للحصول على دعم من اليمين إلى اليسار (RTL):

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

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

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

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

  3. انقر على Do Refactor (تنفيذ إعادة البناء).

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

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

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

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

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

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

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

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

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

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

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