4. إرشادات الترجمة

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

ملاحظة

مع أن هذه الإرشادات تركّز على توثيق QGIS، فإن الطرق والقواعد الموضحة أدناه تنطبق أيضًا على تطبيقات QGIS.

4.1. كيف تصبح مترجمًا

يبحث مشروع QGIS دائمًا عن أشخاص مستعدين لاستثمار مزيد من الوقت في ترجمة QGIS إلى لغة أجنبية، بل وربما تنسيق جهود الترجمة.

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

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

4.1.1. Transifex

تُستخدم منصة الترجمة عبر الويب Transifex لجميع ترجمات QGIS: تطبيق سطح المكتب نفسه (أو الواجهة الرسومية) والتوثيق. لذا فأول ما تحتاج إليه هو حساب لتسجيل الدخول والبدء.

4.1.2. الانضمام إلى مشروع

  1. انتقل إلى https://explore.transifex.com/qgis/

  2. يمكنك استكشاف المشاريع المتاحة التي نترجمها، ومعرفة لغاتها المستهدفة مع إحصاءات متنوعة:

  3. انقر على المشروع الذي تود المساعدة في ترجمته

  4. انقر على JOIN THIS PROJECT في الجهة اليمنى. وسيُطلب منك التسجيل.

  5. أنشئ حسابك أو اتصل باستخدام حساب من منصة خارجية. ثم وثّق حسابك عبر الرابط في البريد الإلكتروني الذي سيصلك.

  6. سجّل الدخول

  7. ستظهر لك بعد ذلك نافذة منبثقة لاختيار اللغة التي تريد المساعدة في الترجمة إليها. يُرجى ملاحظة أننا نحاول جعل العملية بسيطة قدر الإمكان، فنذكر اللغات المستهدفة فقط بغض النظر عن معامل البلد (مثل French (fr) و ليس French (France) (fr_FR)). ولا نسمح بإصدارات مختلفة إلا إذا كانت هناك فروق ملحوظة بين اللغات (مثل البرتغالية في البرتغال مقابل البرازيل).

    ابحث عن لغتك المستهدفة، أي اللغة التي ترغب في المساعدة في ترجمة QGIS إليها، وليس بالضرورة جميع اللغات التي تتحدثها:

    • إذا كانت موسومة بـ already added فاخترها واضغط على Join Project.

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

  8. ستحتاج الآن إلى انتظار منسق اللغة أو القائمين على المشروع لمعالجة طلبك. وستتلقى إشعارًا بالبريد الإلكتروني عند قبول طلبك. وإذا لم يصلك رد على طلبك خلال أسبوع تقريبًا، ففكّر في مراسلة منسق لغتك في Transifex أو القائمة البريدية لمترجمي QGIS.

  9. يمكنك أيضًا الانضمام إلى أي من مشاريع QGIS الأخرى والمساعدة في كل مكان.

4.1.3. الترجمة

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

لمساعدتك على إنجاز ترجمة جيدة، نقدّم بعض التعليمات أدناه. ونوصيك بشدة بقراءتها.

نصيحة

الوصول السريع إلى الملفات القابلة للترجمة في Transifex

إذا وجدت ترجمة خاطئة أو مفقودة في التوثيق الحالي، فيمكنك استخدام الرابط Translate page في القائمة المنسدلة أسفل يسار الصفحة للوصول إلى مصادرها في Transifex وإجراء أي تحديث تريده.

4.2. عملية الترجمة

يُكتب توثيق QGIS باللغة الإنجليزية في ملفات .rst. ولتوفير الترجمات:

  1. ينشئ سكربت ما قبل البناء ملفات ترجمة تُسمى ملفات .po للغة الإنجليزية في المجلد /QGIS-Documentation/locale/en.

  2. تُرفع الجمل الموجودة في ملفات .po إلى منصة الويب Transifex، وتُتاح للمترجمين الذين يمكنهم البدء بالترجمة من الإنجليزية إلى لغتهم باستخدام المحرر.

  3. عندما تكتمل ترجمة ملف بنسبة 100%، تُسحب السلاسل المترجمة تلقائيًا إلى مستودع التوثيق، تحت /QGIS-Documentation/locale/<language>.

  4. عند البناء التالي للتوثيق (الذي يحدث مرة واحدة يوميًا على الأقل -- انظر الوقت أسفل الصفحة)، يعيد سكربت استخدام الجمل لإنشاء المخرجات المترجمة.

  5. بالنسبة للملفات غير المترجمة بالكامل، يسحب سكربت كل أسبوعين السلاسل المترجمة من Transifex إلى Github، وتُنشر هي أيضًا في البناء التالي.

  6. كلما حُدِّث ملف .rst، يُحدَّث ملف .po الإنجليزي وتُرفع التغييرات إلى الملف المقابل في Transifex. وهذا يعني أنه عند إضافة فقرة جديدة إلى مستند .rst مترجم مسبقًا، تُضاف الجمل الجديدة أو المحدَّثة فقط إلى ملف .po المترجم وتحتاج إلى الترجمة.

ملاحظة

خصوصيات ترجمة QGIS Desktop

الفرق الرئيسي في ترجمة تطبيقات QGIS هو أنه بدلًا من ملفات .po، تُرفع جميع السلاسل القابلة للترجمة في ملفات .py و .cpp و .yaml التي تشكّل إصدارًا معينًا من التطبيق إلى Transifex وتُسحب منه في صورة ملف .ts واحد (مثل qgis-application/qgis_en.ts (branch release-3_30) ). وتُسحب الترجمات إلى Github في فرع التطوير (يوميًا)، وعند الإصدار (لكل إصدار يُطلق).

تُستخدم حاليًا أداتان مختلفتان لإجراء الترجمات في QGIS:

  • منصة الويب Transifex، وهي الطريقة الأسهل والموصى بها لترجمة QGIS، تنفّذ العملية الموضحة أعلاه بشفافية وتجمع جميع النصوص القابلة للترجمة في مكان واحد للمترجم. ما عليك إلا اختيار الملفات التي تريدها وترجمتها. وتُخزَّن الملفات المترجمة في المنصة حتى رفع إصدار آخر.

  • Qt Linguist، وهي أداة تطوير من Qt، تتطلب من المترجم سحب ملفات .po (أو .ts) محليًا من الشيفرة المصدرية، ثم ترجمتها، ثم رفعها مجددًا.

لاحظ أن قواعد الترجمة هي نفسها أيًّا كانت الأداة التي تختارها.

4.3. ترجمة ملف

لشرح كيفية عمل الترجمة، سنستخدم إضافة الخريطة الحرارية (heatmap) مثالًا. في هذا المثال سنترجمها من الإنجليزية إلى الهولندية، لكن الأمر سيكون مماثلًا عمليًا للمستندات الأخرى في جميع اللغات.

يمكن العثور على مصدر المستند هنا:

QGIS-Documentation/source/docs/user_manual/plugins/plugins_heatmap.rst

فلماذا اخترت هذه الوثيقة؟

  1. يتضمن صورًا وتعليقات توضيحية وعناوين ومراجع واستبدالات.

  2. كتبت ذلك حتى تكون الترجة أسهل بالنسبة لي ;-)

أنشأت عملية البناء ملف .po الإنجليزي الذي يمكن العثور عليه هنا:

QGIS-Documentation/locale/en/LC_MESSAGES/docs/user_manual/plugins/plugins_heatmap.po

ويمكن العثور على ملف .po الهولندي المقابل (وهو نسخة منه في الأساس) هنا:

QGIS-Documentation/locale/nl/LC_MESSAGES/docs/user_manual/plugins/plugins_heatmap.po

بجانب هذا الملف سترى ملف .mo صغيرًا يشير إلى أنه لا يحتوي على أي ترجمات بعد.

4.3.1. الترجمة في Transifex

لكي تترجم باستخدام Transifex، عليك:

  1. إنشاء حساب على Transifex والانضمام إلى مشروع QGIS.

  2. بمجرد أن تصبح عضوًا في فريق لغة، انقر على المشروع المقابل (في هذه الحالة QGIS Documentation). ستُعرض قائمة باللغات المتاحة مع نسبة ترجمة كل منها.

    ../../_images/transifex_choose_language.png

    شكل 4.23 اختيار لغة الترجمة في قائمة Transifex

  3. مرّر المؤشر فوق لغتك وانقر على أحد الخيارين:

    • View resources: تُعرض الآن ملفات .po القابلة للترجمة مع نسبة ترجمتها وعدد سلاسلها وبعض البيانات الوصفية الأخرى.

    • أو Translate: يفتح واجهة الترجمة مع جميع ملفات .po المتاحة

  4. حدّد الملف الذي تود ترجمته (في حالتنا نبحث عن docs_user-manual_plugins_plugins-heatmap، وهو ملف إضافة الخريطة الحرارية) أو أي ملف غير مكتمل وانقر عليه: ستُحمَّل السلاسل الموجودة في الملفات ويمكنك استخدام الواجهة للتصفية والترجمة واقتراح الترجمات...

    نصيحة

    يؤدي النقر على الرابط Translate page في القائمة المنسدلة أسفل يسار أي صفحة إلى نقلك مباشرةً إلى صفحة الترجمة المقابلة لها في Transifex.

  5. كل ما عليك فعله هو اختيار كل نص وترجمته باتباع الإرشادات.

لمزيد من المعلومات حول استخدام محرر الويب في Transifex، راجع https://help.transifex.com/en/articles/6318216-translating-with-the-web-editor.

4.3.2. الترجمة في Qt Linguist

مع Qt Linguist، عليك:

  1. جلب ملف أو ملفات .po أو .ts يدويًا. ويمكن تحقيق ذلك بتنزيل الملفات إما من منصة Transifex أو من المجلد locale/$language في المستودع المصدري (على GitHub)،

  2. إجراء الترجمة محليًا

  3. رفع الملفات المعدّلة إلى مصادرها (Transifex أو GitHub).

مع أن تنزيل الملفات القابلة للترجمة ورفعها ممكن عبر Transifex، فلا يُنصح باستخدام هذه العملية. فنظرًا لعدم وجود نظام لإدارة الإصدارات في Transifex، سيحل الملف الذي ترفعه ببساطة محل الملف الموجود، وقد يستبدل أي تعديلات أجراها آخرون على المنصة في الأثناء.

عند فتح الملف في Qt Linguist لأول مرة سترى نافذة الحوار التالية:

../../_images/linguist_choose_language.png

شكل 4.24 اختيار لغة الترجمة في قائمة linguist

يجب ملء اللغة الهدف (Target language) بشكل صحيح. أما اللغة المصدر (Source language) فيمكن تركها كما هي مع اللغة POSIX والبلد/المنطقة على Any Country.

عند الضغط على الزر OK يمتلئ Qt Linguist بالجمل ويمكنك البدء بالترجمة، انظر شكل 4.25.

../../_images/linguist_menu.png

شكل 4.25 الترجمة باستخدام قائمة linguist

سترى في القائمة الأزرار التالية المريحة في الاستخدام.

  • linguist_done_next زر Translation Done Next هو أهم زر. إذا كان العنصر يحتاج إلى ترجمة، فأدخل الترجمة في حقل النص ثم اضغط هذا الزر. وإذا كان العنصر لا يحتاج إلى ترجمة فاترك حقل الترجمة فارغًا واضغط هذا الزر أيضًا، مما يشير إلى أن العنصر قد أُنجز وتنتقل إلى العنصر التالي.

  • linguist_previous يمكن استخدام زر Goto Previous للانتقال إلى عنصر الترجمة السابق.

  • linguist_next يمكن استخدام زر Goto Next للانتقال إلى عنصر الترجمة التالي.

  • linguist_next_todo زر Next Todo ينتقل إلى أول عنصر ترجمة لا يزال يحتاج إلى ترجمة. وهو مفيد عندما يتغير المستند الأصلي ولا تحتاج إلى ترجمة سوى بضع جمل جديدة أو معدّلة.

  • linguist_previous_todo زر Previous Todo يبحث إلى الخلف وينتقل إلى أول عنصر ترجمة يجده لا يزال يحتاج إلى ترجمة.

لمزيد من المعلومات حول استخدام Qt Linguist، راجع https://doc.qt.io/archives/qt-5.15/linguist-translators.html

تحذير

إذا أردت تنزيل محتوى للترجمة من المستودع المصدري، فلا تفعل ذلك أبدًا في الفرع master. فهناك دائمًا فروع مخصصة للترجمة متاحة بمجرد تحديث المستند بالكامل باللغة الإنجليزية لإصدار معين. على سبيل المثال، لترجمة دليل QGIS 2.8، عليك استخدام الفرع manual_en_v2.8.

4.3.3. ترجم دليل

لنبدأ الآن بترجمة دليل plugin_heatmap!

يُفترض أن تكون ترجمة معظم الجمل مباشرة. وخلال جلسة الترجمة هذه سأشير إلى الأجزاء (عبارات rst) التي تحتاج إلى ترجمة خاصة.

نرى أدناه جملة مثيرة للاهتمام للترجمة:

The |heatmap| :sup:`Heatmap` plugin allows to create a heatmap from a
point vector map. A heatmap is a raster map showing the density or
magnitude of point related information. From the result "hotspots" can
easily be identified.

تحتوي هذه الجملة على عبارتي rst:

  1. |heatmap| الكلمات الواقعة بين | هي استبدالات ولا يجب ترجمتها أبدًا! إذ ستُستبدل بأيقونة إضافة الخريطة الحرارية!

  2. :sup:`Heatmap`، العبارة :sup: هي عبارة رفع تطبع النص التالي أعلى قليلًا. وتُستخدم لإظهار النصوص المنبثقة التي تظهر عند تمرير المؤشر فوق عنصر شريط الأدوات، وقد تكون مختلفة عندما تُترجم فعليًا في تطبيق QGIS. وفي الحالة الهولندية ليست كذلك!

كل ما تبقى من نص عادي في هذه الجملة يمكن ترجمته!

يحتوي عنصر الترجمة التالي على العبارة :ref: التي تُستخدم عادةً للإحالة إلى قسم آخر في مكان ما من الدليل! ولا يجب أبدًا تغيير النص الذي يلي العبارة :ref: لأنه معرّف فريد!

First this core plugin needs to be activated using the Plugin Manager
(see Section :ref:`load_core_plugin`). After activation the heatmap icon
|heatmap| can be found in the Raster Toolbar.

في هذه الحالة load_core_plugin هو معرّف إحالة فريد موضوع قبل عنصر rst له عنوان. وستُستبدل عبارة ref بنص العنوان وتتحول إلى رابط تشعبي. وعند ترجمة العنوان الذي تشير إليه هذه الإحالة، تُترجم جميع الإحالات إلى هذا العنوان تلقائيًا أيضًا.

يحتوي العنصر التالي على وسم rst :menuselection: متبوعًا بنص يظهر فعليًا في قائمة في تطبيق QGIS، وقد يكون مترجمًا في التطبيق، ولذلك يجب تغييره إن كان الأمر كذلك.

Select from menu :menuselection:`View --> Toolbars --> Raster` to activate
the Raster Toolbar when it is not yet activated.

في العنصر أعلاه تُرجمت "View -->" فعليًا إلى "Beeld -->" لأن هذه هي الترجمة المستخدمة في تطبيق QGIS المعرّب إلى الهولندية.

بعد ذلك بقليل نصادف عنصر الترجمة الصعب التالي:

The |heatmap| :sup:`Heatmap` tool button starts the Dialog of the Heatmap
plugin (see :numref:`figure_heatmap_settings`).

يحتوي على إحالة إلى شكل figure_heatmap_settings_، وكما في الإحالة إلى قسم، لا يجب تغيير هذه الإحالة!! فتعريف الإحالة في مستند rst غير مضمّن في ملف .po ولذلك لا يمكن تغييره. وهذا يعني أن الإحالات إلى الأشكال لا يمكن ترجمتها. عند إنشاء HTML سترى figure_heatmap_settings. وعند إنشاء مستند PDF تُستبدل figure_heatmap_settings_ برقم الشكل.

عنصر الترجمة التالي الذي يحتوي على سمات rst هو العنصر الآتي:

**Input Point dialog**: Provides a selection of loaded point vector maps.

لا تحذف النجوم في السطر أعلاه. فهي تطبع النص الذي تحيط به بخط عريض. وغالبًا ما يكون النص نفسه نصًا موجودًا في نافذة الحوار ذاتها وقد يكون مترجمًا في التطبيق.

يحتوي عنصر الترجمة التالي على وسم rst :guilabel:.

When the |checkbox| :guilabel:`Advanced` checkbox is checked it will
give access to additional advanced options.

النص Advanced في وسم guilabel قد يكون مترجمًا في تطبيق QGIS وربما يحتاج إلى تغيير!

يحتوي عنصر الترجمة التالي على ``airports``. تُستخدم علامات الاقتباس لإعطاء النص خطًا مختلفًا. وفي هذه الحالة هو قيمة حرفية ولا يحتاج إلى ترجمة.

For the following example, we will use the ``airports`` vector point
layer from the QGIS sample dataset (see :ref:`label_sampledata`).
Another excellent QGIS tutorial on making heatmaps can be found on
`https://www.qgistutorials.com
<https://www.qgistutorials.com/en/docs/creating_heatmaps.html>`_.

يتضمن هذا العنصر أيضًا رابطًا تشعبيًا بعنوان url ونص عرض خارجي. يجب بالطبع ترك عنوان url كما هو، ويُسمح لك بتغيير النص الخارجي https://www.qgistutorials.com الذي يراه القارئ. ولا تحذف أبدًا الشرطة السفلية في نهاية الرابط التشعبي فهي جزء أساسي منه!!

4.3.4. ملخص قواعد الترجمة

  1. لا تغيّر النص الواقع بين حرفي | مثل |logo| و |checkbox| و |label| و |selectString| و |addLayer|،... فهذه وسوم خاصة تُستخدم لاستبدال الصور

  2. لا تغيّر الإحالات التي تبدأ بأدوار مثل :ref: و :file: و :numref: إلا إذا تضمنت عنوانًا. وفي هذه الحالة يمكنك ترجمة العنوان مع إبقاء الرابط دون تغيير (أي النص الواقع بين < و >)

    نصيحة

    عند توفير عنوان لإحالة، قد يعرض Transifex رقمًا في النص الإنجليزي المصدر بدلًا من جزء الرابط. انقر على الرقم في النص المصدر لإضافة رابط الإحالة بجانب العنوان الذي تترجمه.

  3. لا تغيّر الإحالات التي تنتهي بشرطة سفلية مثل figure_labels_1_

  4. لا تغيّر عنوان url في الروابط التشعبية، لكن يمكنك تغيير الوصف الخارجي. اترك الشرطة السفلية في نهاية الرابط التشعبي دون مسافات إضافية (>`_)

  5. غيّر النص الموجود داخل علامات الاقتباس التي تلي الوسوم :index: و :sup: و :guilabel: و :menuselection:. وتحقق مما إذا كان مترجمًا في تطبيق QGIS وكيف. ولا تغيّر الوسم نفسه.

  6. غالبًا ما يشير النص الواقع بين نجمتين مزدوجتين وعلامتي اقتباس مزدوجتين إلى قيم أو أسماء حقول، وأحيانًا تحتاج إلى ترجمة وأحيانًا لا.

  7. احرص على استخدام الأحرف الخاصة نفسها (وبالعدد نفسه) الموجودة في النص المصدر مثل ` و `` و * و ** و ::. فهي تساهم في الشكل الجمالي للمعلومات المقدَّمة

  8. لا تبدأ النص المحاط بالأحرف الخاصة أو الوسوم بمسافة ولا تُنهه بها

  9. لا تُنهِ السلاسل المترجمة بفقرة جديدة، وإلا فلن يُترجم النص أثناء توليد html.

التزم بالقواعد المعروضة أعلاه وسيبدو المستند المترجم جيدًا!

لأي سؤال، يُرجى التواصل مع فريق مجتمع QGIS أو فريق ترجمة QGIS.