دليل المترجم
يخدم هذا التوثيق دليلاً لكل مشاريع الترجمة والإجراءات في عربآيز. سوف يفصّل معلومات مطلوبة قد تجدها مفيدة حول التسجيل والترجمة وسوف يجيب على العديد من الأسئلة الشائعة التي قد تجول ببالك خلال هذه العملية. يمكنك الرجوع إلى هذا التوثيق في أي وقت خلال قيامك بالترجمة. يتلهف فريق عربآيز للسماع منك ويرحّب بك معه.
محتويات
- 1 الخطوات الأولى
- 2 خطوات اختيارية
- 3 عملية الترجمة
- 4 التوجيهات العامة والاقتراحات
- 4.1 ملفات 'PO' و 'POT'
- 4.2 بنية ملفات 'PO'
- 4.3 الملاحظات ضمن 'msgid' ('_:')
- 4.4 كلمات خاصة ضمن 'msgid' ) 'Comment=' أو 'Name=' أو غيرها)
- 4.5 أوامر HTML ضمن 'msgid'
- 4.6 الأسطر الجديدة وعلامات التنقيط ضمن 'msgid'
- 4.7 نصوص 'msgstr' ذات السرد المتعدد لصيغ الجمع
- 4.8 مفاتيح الوصول والشرطة السفلى في 'msgid'
- 4.9 الأسماء والاختصارات بداخل 'msgid'
- 4.10 الأحرف الخاصة ضمن 'msgid'
- 4.11 استخدام صيغة الأمر للأعمال
- 4.12 ترميز UTF-8
- 4.13 التأكد من صحة الملف
- 4.14 مقومات إرسال التعديلات
- 5 أدوات الترجمة
- 6 مشاريع الترجمة الجديدة والتوثيق العربي
- 7 ما يفعله المنسقون (وظائفهم، ومهامهم)
الخطوات الأولى
إن كنت محظوظاً كفاية بأن تمتلك مهارات جيدة باللغتين العربية والإنجليزية وقررت أن تساهم في الترجمة، فسوف نريك ونضع النقاط الرئيسية لك لما تحتاج أن تقوم به كي تصبح عضواً ومترجماً فعّالاً ضمن مشروع عربآيز وفريق متحمسيه.
اشترك في قائمة التوثيق البريدية 'doc'، ثم أرسل رسالة إلى القائمة doc@arabeyes.org وعرف عن نفسك وأين تكمن اهتماماتك، وأي المشاريع يثير فضولك (راجع قائمة مشاريع الترجمة للخيارات). سوف يقوم منسّق المشروع بتعيين مهمة لك (إذا لزم الأمر): ملف، أو قائمة ملفات أو وِحدة لترجمتها.
يمكنك في أي مرحلة بالطبع أن تشترك في النقاشات على قائمة التوثيق 'doc' البريدية و أن ترسل أفكارك أو اقتراحاتك أو أسئلتك. سوف يكون المنسّق أو أحد المترجمين العارفين ذوي الخبرة المناسبة أكثر من مسرور للردّ على تساؤلاتك. ولا تنسَ الدخول إلى قناة عربآيز للنقاش مع الأعضاء والاستفسار عما تجهله.
خطوات اختيارية
يمكنك التسجيل كي تحصل على حساب SVN. سيمكنك هذا من المشاركة بعملك ضمن عربآيز (اقرأ SVN HOWTO).
عملية الترجمة
بعد القيام بالتسجيل أو في حين انتظار رسالة معلومات حساب SVN (والذي يتم إرساله خلال يومين إلى ثلاثة أيام)، يمكنك التقدم بالخطوات التالية: يجب أن يكون دعم اللغة العربية مُعدّاً على نظامك. إن لم يكن لديك دعم العربية مسبقاً على نظام لينكس، رجاءً راجع مستند Arabic HOWTO حتى تقوم بالإعداد السليم.
إن كنت تستخدم نظام تشغيل ويندوز على جهازك، فنحن نقترح بشدّة أن تبدأ باستخدام لينكس عِوضاً عن ذلك، وخذ بالاعتبار تثبيتاً ذا قسمين، للقرص الصلب، بحيث تستطيع استخدام كليهما. سوف يفتح لك لينكس أبواباً عديدة جديدة ويوفر لك إمكانية اكتشاف العالم الرائع لبرامج المصدر المفتوح :-) أيضاً، لن تحصل على الأرجح على أجوبة جيدة لأسئلتك إن أصريت على استخدام نظام ويندوز، حيث أن معظم المستخدمين في عربآيز، إن لم يكن كلهم، يستخدمون لينكس أو نظاماً مشتقاً من يونكس.
حالما تقرر بأي من المشاريع تريد العمل، تقدّم للحصول على الملفات. إن كان لديك اتصال سريع بالإنترنت (DSL أو أفضل من ذلك، أو تنوي البقاء متصلاً لفترات طويلة من الوقت باستخدام اتصال المودم)، فيقترح أن تقوم بنسخ ملفات المشروع بالكامل، أي إن كنت تريد العمل بمشروع ترجمة جنوم على سبيل المثال، فقم بنسخ الدليل translate/gnome/. النسخ الكامل للملفات سيساعدك في بناء قاعدة الترجمة لكيبابل ضمن الأشياء الأخرى. من ناحية أخرى، إن كان لديك اتصال إنترنت محدود ووقت محدود كذلك، يمكنك القيام بتنزيل الملفات التي سوف تعمل عليها بجد وتترجمها. رجاءً انتبه إلى أنك لا تحتاج إلى حساب SVN لتنسخ الملفات؛ راجع قسم الوصول في مستند SVN HOWTO للمزيد من المعلومات. استمر بقراءة هذا المستند منتبهاً لتعليمات ترجمة محددة بالإضافة إلى أدوات الترجمة. عليك أيضاً بقراءة مقاييس التوثيق العربي للحصول على فكرة أفضل.
ابدأ بترجمة الملفات :-)
رجاءً قم بإرسال ترجماتك بشكل منتظم. ليس عليك الانتظار حتى تكتمل ترجمة الملف كي ترسله إلى نظام SVN. راجع تعليمات SVN HOWTO القسم الخاص بإرسال التعديلات. عملية الإرسال المنتظم مهمة كي نتفادى الكوارث، على سبيل المثال حذف ملف والتضاربات، مع أنها لا تحدث كثيراً، حيث أن شخصاً واحداً يجب أن يعمل على نفس الملف في وقت واحد. إن لم تستطع إرسال تعديلاتك لسبب من الأسباب من خلال نظام SVN، فيمكنك إرسال الملف بواسطة البريد الإلكتروني إلى translate (at) arabeyes dot org وتخبر أنك فعلت ذلك من خلال قائمة التوثيق 'doc'.
مراجع الترجمة
المرجع الأساسي لترجمات عربآيز هو القاموس التقني، حيث تتم مناقشة المصطلحات واختيار الترجمة الأفضل لها. للمزيد من المعلومات عن القاموس التقني، أنظر الصفحة الرئيسية للقاموس.
بالإضافة إلى ذلك، هذه قائمة ببعض المراجع المعتادة والتي قد تجدها مفيدة خلال الترجمة والتي يمكنك استخدامها بالإضافة إلى أي قاموس مطبوع قد يكون لديك. يفضل استخدام المصطلحات التقنية ومصطلحات الكمبيوتر، وبخاصة الشائع منها إن كان صحيحا ويؤدي الغرض في سياقه. ملفات PO المترجمة مسبقاً هي أيضاً مرجع جيد. إن كان لا يزال لديك مشكلات بكلمة أو تعبير ولا تستطيع ترجمته، فعليك بالإعلام عن ذلك من خلال قائمة التوثيق 'doc'.
- يمكنك الاستفادة من برنامج stardict؛ وهو قاموس يقدم العديد من الميزات ويتيح إضافة العديد من القواميس إليه. لإضافة قواميس إلى البرنامج، تستطيع تنزيل ما تريد من هنا أو من هنا. ونحن ننصح بتحميل قاموس Stardict Arabeyes English-Arabic
- موقع Onelook والذي هو موقع باللغة الإنجليزية يجمع العديد من المعاجم عبر الإنترنت. استخدمه لتجد المصطلحات الإنجليزية للكلمات التي لست متأكداً منها.
التوجيهات العامة والاقتراحات
سوف نقوم هنا بمراجعة بعض التوجيهات ونقوم بالاقتراحات التي لا تعتمد على الأدوات التي سوف تستخدمها في ترجمة الملفات. إن استخدمت محرر نصوص بسيط أو أداة أكثر تعقيداً مثل كيبيبل، رجاءً اقرأ القسم التالي حيث أنه يُعنى بطرق استخدام كليهما. الغرض هنا هو تعلّم ما يجب عمله لترجمة الملفات. نحتاج إلى بناءٍ وإجراء عام، من وبواسطة الجميع؛ حتى نحصل على عادات ترجمة متكاملة.
ملفات 'PO' و 'POT'
بيئات سطح المكتب الرسومية مثل كدي وجنوم والتطبيقات العديدة التي تشملها مكتوبة بلغات C/C++ البرمجية. ترجمة هذه البيئات تعني ترجمة عشرات الآلاف من النصوص الظاهرة للمستخدم من لغتها الأم -أي الإنجليزية- للغة المطلوبة، وهي العربية. لا يتم هذا عن طريق نسخ الشفرة المصدرية واستبدال كل النص الإنجليزي بمقابله العربي، بل إنه يتم بترجمة النصوص المستخرجة مسبقاً في ملفات عديدة كي تسهل العملية بأكملها. بذلك، يتم استخلاص النصوص الظاهرة للمستخدم من الشفرة المصدرية باستخدام برنامج يسمى 'gettext'. تؤخذ هذه النصوص ثم تخزن في ملف نصّي ذي امتداد '.pot'. يعني هذا الامتداد أن الملف لم يُترجم بعد، أي أنه بصيغته الأصلية. إذا أردت البدء بترجمة ملف من نوع 'POT'، فعليك أولاً إعادة تسميته بنفس الاسم ولكن بامتداد '.po'. لنقل أنك تريد البدء بترجمة الملف 'filename.pot'، فإنك حينها تستخدم الأمر:
$ mv filename.pot filename.po
اعمل على ترجمة الملف وعندما تكون راضياً عن كمّ العمل الذي أنجزته، قم بما يلي:
$ svn delete filename.pot $ svn add filename.po $ svn commit
يعني الامتداد '.po' أن الترجمة بُدأت على هذا الملف، دون أن تعني بالضرورة أنها انتهت. تذكر رجاءً ألا تترجم ملفات 'POT' إطلاقاً. إما أن تكون الملفات التي تقوم بترجمتها ذات امتداد '.po' أو أنك ستجبر على أن تعيد تسميتهم بناءً على ما سبق شرحه. لست مجبراً على تغيير امتداد الملفات 'POT' التي لا تنوي ترجمتها في المستقبل القريب. إعادة التسمية هذه أصبحت تعني نوعاً ما أن الشخص الذي قام بإعادة التسمية يملك الملفات وسيكون عاملاً عليها. إن كان لديك أية أسئلة أو شكوك، راسل قائمة التوثيق البريدية. في وقت التنفيذ، سوف تقوم بيئة سطح المكتب بتحميل النصوص الظاهرة للمستخدم من ملفات 'PO' للغة المطلوبة وتقوم بإظهارها تباعاً دون أي تغيير ظاهر في عمل البرنامج. إذا كانت الترجمة غير مكتملة، فسوف تقوم البيئة بإظهار النص الإنجليزي حيث تفتقد الترجمة. الأقسام اللاحقة سوف تعطيك بعض التعليمات فيما يخص طريقة ترجمة ملفات 'PO'. تذكر أنه بإمكانك دائماً أن تستخدم قائمة الترجمة البريدية عندما يكون لديك أي تساؤلات، حيث أنه من غير الواقعي أن ندعي أن هذه التعليمات تحل كل المشكلات التي قد يواجهها المترجم. نشجّع المترجمين كذلك على مراجعة الملفات المترجمة مسبقاً في مستودع SVN فرصةً جيدةً للتعلم أكثر حول الأمور المدوّنة.
بنية ملفات 'PO'
العنوان الرأسي
تحتوي كل الملفات معلومات مرتبطة بها فيما يتعلق بمن قام بالترجمة، وما هو التشفير المستخدم، بيانات تواريخ متعددة، كوقت الإنشاء والمراجعة ..إلخ. هذه المعلومات كلها تخزن ضمن بداية الملف. هذه المعلومات طبعاً قابلة للتغيير؛ حيث أنها قابلة للتعديل. فيما يلي، عنوان رأسي لملف منشأ جديد:
#, fuzzy msgid "" msgstr "" "Project-Id-Version: desktop files\n" "POT-Creation-Date: 2002-08-14 03:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n "
مع كل الملفات الجديدة؛ عليك إزالة السطر "#, fuzzy" وإضافة هذا السطر إلى بداية الملف "# translation of filename.po to Arabic" مستبدلاً "filename.po" بالاسم المناسب للملف الذي تقوم بترجمته، وإضافة معلومات حقوق النشر "# Copyright (C) 2003 Free Software Foundation, Inc." ثم يمكنك إضافة اسمك وعنوانك البريدي بعد سطر حقوق النشر، وستكون هذه لائحة أسماء المترجمين. بعد ذلك، استبدل "Last-Translator:"، "Language-Team:"، "Content-Type:" و "Content-Transfer-Encoding:" بحيث يظهرون كما هو مبين أدناه، ولا تهتم بأي شيء آخر موجود أو غير موجود للوقت الحالي. إن كنت ستستخدم محرر نصوص كي تترجم الملفات، على خلاف أداة الترجمة كيبيبل، فتذكر كذلك أن تقوم بتحديث السطر "PO-Revision-Date:" في كل مرة تحفظ فيها الملف. فيما يلي، مثال على العنوان الرأسي خلال عمل الترجمة، أو بعد الانتهاء منها:
# translation of desktop_kde-i18n.po to Arabic # desktop.po - Arabic Translation. # Copyright (C) 2001,2002,2003 Free Software Foundation, Inc. # Name1 Surname1 <A_address/@domain_1.com>, 2001. # Name2 Surname2 <B_address/@domain_2.net>, 2002 # Name3 Surname3 <C_address/@domain_3.org>, 2002,2003 # msgid "" msgstr "" "Project-Id-Version: desktop_kde-i18n\n" "POT-Creation-Date: 2003-03-02 20:47+0100\n" "PO-Revision-Date: 2003-02-26 21:27+0200\n" "Last-Translator: Name3 Surname3 <C_address/@domain_3.org>\n" "Language-Team: Arabic <support at arabeyes.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n "
الأسطر التي تبدأ بالعلامة '#' هي ملاحظات. إن كنت تستخدم برنامج ترجمة مثل كيبيبل، فإن بعض الحقول الرئيسية مثل "X-Generator:" سيتم إنشاؤها تلقائياً. إن كنت تعمل على ملف 'PO' بدأ أحد آخر بترجمته مسبقاً، وقمت بتغييرات كبيرة، فقم فقط بإضافة اسمك إلى لائحة المترجمين وضع اسمك وعنوانك البريدي في الحقل "Last-Translator:"، بعد التحقق من أن الشخص الذي كان اسمه في الحقل "Last-Translator:" مضاف مسبقاً إلى لائحة المترجمين، وإلا فأضف اسمه إليها. تأكد أيضاً من أن الحقول المذكورة أعلاه تحتوي على القيم الكاملة والصحيحة، وإلا فعدِّلها. تذكر دائماً أن تضيف اسمك إلى لائحة المترجمين. ذلك مهم جداً حتى نعلم من قام بالتعديل الأخير على الملف وللتأكد من أنك تحصل على الجزاء الذي تستحقه لعملك :-)
المحتوي والنصوص
بعد العنوان الرئيسي، يحتوي ملف 'PO' على أسطر من 'msgid' و 'msgstr'، يسبقها في بعض الأحيان ملاحظات حول الموقع بالضبط الذي تظهر فيه هذه النصوص في الشفرة المصدرية (هذا النوع من الملاحظات يبدأ بعلامة "#:" في أول السطر). يكون السطر 'msgid' محتوياً مسبقاً على النص الإنجليزي الذي يجب ترجمته. ما يجب على المترجم عمله هو أن يضيف إلى 'msgstr' ترجمة ما هو مكتوب في 'msgid' باللغة العربية، دون حذف علامة التنصيص ' " '. فيما يلي، أمثلة منتقاة من ملفات 'PO' مختلفة،
#: finddialog.cpp:55 msgid "Galaxies" msgstr "مجرّات"
msgid "" "_: do not use a target symbol\n" "No Symbol" msgstr ""
#: src/acme.h:80 #, fuzzy msgid "Eject key" msgstr "مفتاح الإخراج"
أول 'msgid' مترجم ببساطة، أما السطر الثاني فليس مترجماً بعد، ولذلك يظهر 'msgstr' فارغاً. السطر الثالث مترجم إلا أن المترجم وضع عبارة "#, fuzzy" قبل المجموعة. المؤشر "fuzzy" هو طريقة يستطيع بها المترجم الإشارة إلى أنه غير متأكد من المصطلح وأن المراجعة مطلوبة. العلامة "#," هي ذات أهمية كبيرة، حيث أنها ترتيب أحرف معين. ومن المهم أن تلاحظ أن عبارة "#, fuzzy" يجب أن تسبق السطر 'msgid'.
الملاحظات ضمن 'msgid' ('_:')
نصوص 'msgid' التي تبدأ بـ '_:' تشير إلى وجود ملاحظة لتساعد المترجم أو تعطيه معلومات أكثر حول الرسالة المطلوب ترجمتها. تنتهي الملاحظة بسطر جديد '\n' (new line). لا تترجم ملاحظة المساعدة، ضع ببساطة فقط ترجمة ما يلي الملاحظة و '\n' بناءً على ما فهمته من توجيهها لك. مثال:
#: cupsdconf.cpp:808 cupsdconf.cpp:831 cupsdconf.cpp:847 msgid "" "_: Base\n" "Root" msgstr "" "الجذر"
كلمات خاصة ضمن 'msgid' ) 'Comment=' أو 'Name=' أو غيرها)
ترجم فقط ما يلي الحرف '=' بإبقاء النص دون تغيير، أي لا تقم بترجمة أو تعديل الكلمة "Comment" أو "Name"؛ أبق الكلمات بالإنجليزية. مثال:
#: kde-i18n/vi/messages/entry.desktop:1 msgid "Name=Vietnamese" msgstr "Name=الفييتنامية"
أوامر HTML ضمن 'msgid'
تستخدم بعض التطبيقات مزايا النصوص الغنية (للفقرات، والألوان، والخطوط العريضة.. إلخ) كي تجعل النصوص تظهر بشكل أجمل. يتم هذا باستخدام أوامر HTML كمثل "" على سبيل المثال. من المهم جداً أن تبقي النص المترجم مع كل هذه الأوامر. هذا هو الحال أيضاً بالنسبة لأحرف الطباعة للغة C كمثل "\n" أو "\t" أو "%s" وما شابه ذلك. ترجم النص بين الأوامر فقط. أيضاً، تذكر أنك عندما تستخدم وضع الإدخال ذي الاتجاه الأيمن-إلى-الأيسر -أي أنك تطبع باللغة العربية- قد يبدو التتالي "\n" غريباً. في أي من الوضعين، تذكر أنك يجب أن تبدأ بالحرف "\" ثم "n" بغض النظر عن كيفية ظهورهما على الشاشة. مثال:
#: kio/kio/global.cpp:451 msgid "</p><p>Details of the Request:" msgstr "</p><p>تفاصيل الطّلب:"
الأسطر الجديدة وعلامات التنقيط ضمن 'msgid'
أبق علامات التنقيط في النص المترجم على ما هي عليه في النص الأصلي. يجب أن تتضمن أيضاً الأسطر الجديدة. أي؛ إذا كان هناك عدة نصوص في 'msgid' واحدة، يجب أن تشابه 'msgstr' النص الأصلي من حيث عدد الأسطر، ويجب تجاهل الأسطر التي تبدأ بـ "_:" كما هو مبيّن أعلاه، حيث أنها مجرد ملاحظات. راجع المثال comments.
نصوص 'msgstr' ذات السرد المتعدد لصيغ الجمع
ميزة الصيغ المتعددة هي توفر إمكانية إظهار الكلمات بالصيغ الصحيحة بناءً على الكمية. تميّز الكميات بالعلامة "%n". مثال:
msgid "_n: one cat\n" "%n cats" msgstr "قطّة واحدة\n" "قطّتان\n" "%n قطط\n" "%n قطّة"
سطر 'msgstr' الأول يظهر عندما يكون لدينا قطة مفردة. أما الثاني فيظهر عندما يكون هناك قطتان. والثالث يظهر عندما يكون هناك ثلاث وحتى عشر قطط. أما السطر الأخير فيظهر عندما يكون عدد القطط أكثر من أو مساوٍ لإحدى عشرة قطة. ليس هناك داعٍ لإضافة "_n" في النص المترجم. لا تنسَ أن تستخدم علامة "\n" للفصل بين المدخلات المختلفة.
مفاتيح الوصول والشرطة السفلى في 'msgid'
الأحرف التي يسبقها الحرف ("_") تسمى مفاتيح الوصول أو المسرّعات. يستخدم مفتاح الوصول بغرض الوصول المباشر إلى القائمة بدلاً من اختيارها بواسطة الفأرة أو المؤشر. تجب ترجمة المسرّعات لتتناسب مع لوحة المفاتيح العربية. هذا يعني أنه عليك أن تختار حرفاً من الكلمة، أو الجملة، ليكون مُسرّعاً. حاول ألّا تعيّن الحرف نفسه لمُسرّعين في نفس القائمة؛ يمكنك أن تحزر ذلك من موضع وجود 'msgid' على سبيل المثال. قاعدةً أساسيةً؛ عيّن الحرف الأول من الكلمة مُسرّعاً، وإن كان ذلك الحرف مستخدماً كمفتاح وصول في النص الحالي، عيّن الحرف الثاني، وهلم جرى. رجاءً، حاول أن تكون متناسقاً.
الأسماء والاختصارات بداخل 'msgid'
الأسماء - الناس، الأماكن، بعض البرامج - يمكن ترجمتها حرفياً إلى العربية، والبعض الآخر يمكن ترجمته بالكامل أو جزئياً إلى العربية. الاختصارات كمثل ASCII وHTTP وC++ إلخ، يجب أن تبقى كما هي بالأحرف اللاتينية. وهذا تماماً هو الحال بالنسبة لأسماء التصنيفات، والمتغيرات، إلخ. تذكر أن تقرأ مقاييس التوثيق العربي. إن كنت في شك، راسل قائمة التوثيق 'doc' البريدية.
الأحرف الخاصة ضمن 'msgid'
بعض الأحرف الخاصة مثل "&" يجب أن تدخل مرتين لتخبر المدقق أن يبقيها كما هي. رجاءً قم بترجمة هذا وأخذه بعين الاعتبار عند الحاجة. مثال:
#: rc.cpp:19 msgid "Color && Animation" msgstr "اللّون و الحركة"
استخدام صيغة الأمر للأعمال
خيارات القائمة مثل "Edit"، "Save"، "Quit" إلخ، وما شابه ذلك يجب أن تترجم إلى العربية بصيغة الأمر. نقوم بهذا لغرض التطبيع، اتباع ما هو موجود، ولكي نعبر عن تفاعل حيّ أكثر بين المستخدم والجهاز. لهذا أهمية قصوى. مثال:
#: ktouch.cpp:239 msgid "Save file..." msgstr "احفظ ملفّاً..."
ترميز UTF-8
رجاءً تذكر دائماً أن تحفظ ملفاتك بترميز UTF-8 وإلا؛ فلن يكون بمقدور الآخرين قراءته. (هذا المستند مكتوب بتشفير UTF-8، فقم بتحديد هذا التشفير لتعرضه بشكل صحيح.) ترميز UTF-8 هو ترميز عالمي شامل، أنشأته وتصونه يونيكود. يمكن UTF-8 المستخدم من أن يرمِّز كل لغات العالم بالإضافة للعديد من الرموز، الحسابية على سبيل المثال، في ملف واحد. قبل وجود يونيكود وUTF-8، كان تبادل الوثائق بين الأنظمة المعدة للاستخدام المحلي شبه مستحيل. لذلك فإنه من المهم جداً أن يحفظ كل العمل باستخدام ترميز UTF-8، كما أن إرسال الرسائل العربية إلى قائمة التوثيق 'doc' يجب أن يكون أيضاً باستخدام هذا الترميز. عندما يتم إعداد كيبيبل بشكل صحيح، ويأتي ذكر ذلك لاحقاً، فسوف يقوم بحفظ كل ملفاتك بترميز UTF-8. من ناحية أخرى، إن استخدمت محرر نصوص لتقوم بالترجمة، فالرجاء أن تتأكد من أنه يدعم ترميز UTF-8 وأنه بالفعل يقوم بحفظ عملك بذلك الترميز. يمكنك التحقق من ذلك عن طريق الأمر:
$ file filename.po
سوف يظهر لك هذا الأمر ترميز الملف filename.po. إذا بدأت بالعمل على ملف ووجدت أنه غير محفوظ بترميز UTF-8 أو أن به مشكلة ترميز، كأن يظهر مربعات بدلاً من الأحرف العادية على سبيل المثال، فتوقف عن العمل مباشرة وأرسل تقريراً بهذه المشكلة إلى قائمة التوثيق 'doc' البريدية. حالما يتم التقرير وقبل الحصول على الحل، قم بالعمل على ملف آخر بدلاً من الانتظار عاطلاً :-)
التأكد من صحة الملف
كي تتأكد من أن ملف 'PO' التي قمت بترجمته لا يحتوي على أية أخطاء جملية أو تركيبية، يجب عليك أن تنفذ الأمر:
$ msgfmt -c --statistics filename.po
حيث أن 'msgfmt' هو أحد الأوامر المتوفرة في حزمة 'gettext' من جنيو. إن كان هناك أية أخطاء، فسوف تعلم بها مع رقم السطر المناسب حتى تستطيع أن تجد الخطأ وتصححه بسهولة، والذي قد يكون عامة نسيان إضافة علامة تنصيص. بإزالة أية أخطاء، سوف يقوم الأمر "msgfmt" بتزويدك بإحصائيات حول ما قد تُرجم، وما لم يترجم وكم من النصوص هي غير مؤكدة في الملف. الرجاء إضافة هذه الإحصائيات في سجل إرسال التعديلات، أي عندما تقوم بإرسال ملفاتك إلى مخزن نظام SVN.
مقومات إرسال التعديلات
بعد ترجمة ملف 'PO' بالكامل أو جزئيا،ً والذي تقرر أنه يجب إرساله إلى المخزن، فعليك بإرساله. هذه لائحة بالأشياء التي يجب عليك القيام بها قبل إرسال أي ملفات:
- أن يكون للملف امتداد 'PO'.
- أن تكون قد أدخلت المعلومات الصحيحة في رأس الملف.
- أن يكون الملف محفوظاً ومشفراً باستخدام UTF-8.
- أن تكون قد تأكدت من أنه ليس هناك أية أخطاء؛ باستخدام الأمر 'msgfmt'.
- إن لم يمكن إنجاز أي مما سبق ذكره، فرجاءً راجع ما قد ناقشناه في الأعلى كي تحل أية مشكلات. وإلا، فإن ملفاتك مخولة لوضعها في نظام SVN.
- إن كنت عملت على عدة ملفات وترجمتها في نفس الوقت، فرجاءً أن تقوم بإرسال تلك الملفات جميعاً باستخدام الأمر 'svn commit' بدل أن ترسل كلاً منهم على حدة؛ حيث يقلل ذلك الضغط على الشبكة والمشكلات وغيرها.
- خلال إرسال التعديلات، وذلك مهم جداً، تذكر أن تضيف إحصائيات ترجمة الملفات إلى سجل التعديلات، مثل: "تم تغيير الملف filename.pot إلى filename.po" وأن تكتب عدد النصوص التي ترجمت، أو لم تترجم أو هي غير مؤكدة في كل ملف. في حال حدوث تضارب، والذي هو نادر جداً، رجاءً راجع المستند SVN HOWTO.
أدوات الترجمة
يقدم هذا القسم أدوات الترجمة العديدة التي تستطيع استخدامها لتساعدك في عملية الترجمة. في حين أننا نقترح ونفضل استخدام أدوات مثل كيبيبل، حيث أنها ستسهل عملك بشكل كبير، إلا أنه من الممكن والمعقول أيضاً استخدام محررات النصوص البسيطة. تأكد من قراءة المستند common بالكامل قبل أن تبدأ بعملك بالترجمة.
محررات النصوص
إذا قرأت common بتمعّن وبالكامل، فسيمكنك البدء بالترجمة باستخدام محرر نصوص يوفّر تشفير UTF-8. على كل حال،نقترح عليك أن تأخذ بعين الاعتبار بعض الأدوات المذكورة أدناه حيث أنها سوف تسهّل عليك عملك وتزيد من متعة العمل المطلوب. محرّر النصوص، بخلاف تطبيق الترجمة، يتطلب منك انتباهاً إضافياً إلى علامات التنصيص المزعجة ` " `، والتي تُحذف غالباً بطريق الخطأ، وسيعرضك للقيام بالأخطاء غالباً، ولن يوفر لك قاعدة بيانات لتساعدك، ولن تكون قادراً على القيام بما يسمونه "الترجمة التقريبية". باختصار، حاول استخدام تطبيق ترجمة وقيّم الأدوات المشابهة لكيبيبل أو Poedit أو gTranslator، حيث أن كل الغرض منها تسهيل عمل المترجم :-) إن ووجهت بحقيقة أنك تستطيع فقط استخدام محرّر نصوص، فتأكد من أنه يدعم تشفير UTF-8. نقترح أن تستخدم آخر إصدار من محرّر نصوص عربآيز كتوب. كل محررات النصوص الأخرى الآلفة لتشفير UTF-8 مقبولة أيضاً.
Poedit
بوإدت هو محرر لملفات .po متوفر لأنظمة تشغيل وندوز وماك أو إس إكس ولينكس.
كيبيبل ( Kbabel )
إن كنت تستخدم بيئة سطح المكتب كدي، فلا بد أن كيبيبل مثبت مسبقاً. وإلا، فيمكنك تنزيل الإصدار المستقر الأخير من موقع كيبيبل.
التخصيص
عندما تقوم بتشغيل كيبيبل لأول مرة، فسيفتح لك مربع حوار التفضيلات. ستحتاج أن تقوم بتعبئة بعض الحقول حيث يسهل هذا العملية ولن تكون مطالباً بإدخال تلك المعلومات في العديد من العناوين الرأسية لملفات "PO". إن لم يفتح مربع الحوار هذا تلقائياً، فيمكنك فتحه من خلال Settings->Configure KBabel . انظر figure كي ترى نوع المعلومات التي تحتاج أن تدخلها في هذا الحوار. تحقق من أن كلّ خياراتك تبدو مشابهة لتلك التي في صورة الشاشة، عدا المعلومات الشخصية طبعاً: اسمك، بريدك الإلكتروني، إلخ.
لا زلت مطالباً بتحرير العنوان الرئيسي لملف "PO" قبل أن تحفظ أي ملف مفتوح حديثاً، حتى تضيف معلومات حقوق النسخ وتنقل اسم آخر مترجم إلى قائمة المترجمين، إن لم هناك مسبقاً، وتضع معلوماتك في قائمة المترجمين أيضاً. قم بذلك من خلال قائمة Edit->Edit Header . كل الحقول الأخرى للعنوان الرأسي سوف تعبأ تلقائياً بواسطة كيبيبل، إن قمت بإعداده بشكل صحيح.
إنشاء قاعدة بيانات
إنشاء قاعدة البيانات، والتي تعرف أحياناً بـ"القاموس" مهمّ، حيث يسمح لك ذلك بعمل الترجمات "التقريبية". تمكن قاعدة البيانات أيضاً كيبيبل من أن يقترح عليك الترجمات المحتملة للعديد من نصوص 'msgid'. عندما تهمّ بإنشاء قاعدة البيانات، يفضّل أن يكون لديك أكبر عدد من ملفات `PO` التي يمكنك الحصول عليها، كل أولئك من مخزن SVN لعربآيز التي تتعلق بكدي و/أو جنوم على سبيل المثال، حتى تستطيع بناء قاعدة بيانات غنيّة وملأى.
اذهب إلى Settings->Configure Dictionary->Translation database. اختر تبويب "Database" ثم اضغط على زر "Scan directory and subdirectories". اختر الدليل الذي يحتوي على ملفات `PO` ثم اضغط على زر "OK". ستستغرق العملية حوالي عشر دقائق. اضغط على تبويب "Search" وطابق ما هو موضح في figure. بعد ذلك اختر Settings->Configure KBabel وتأكد من أن تحدد مربع اختيار "Automatically start search". سوف تريد أيضاً أن تختار "Translation database" من قائمة "Default Dictionary" المنسدلة.
الترجمة
ينشئ كيبيبل نافذتين، تحتوي العليا على 'msgid' وتستخدم السفلى لإدخال ترجماتك (figure). خذ بعين الاعتبار كل ما ذكر حول التنقيط، من علامة "_:" وأحرف "="، وصيغ الجمع، إلخ. لا تكترث لعلامات التنصيص التي تحيط الرسائل حيث أن كيبيبل يضعها تلقائياً. إن لم تكن متأكداً من ترجمتك لأي نص، يمكنك تحديده بعلامة "fuzzy" بكتابة "#, fuzzy" دون علامات التنصيص في نافذة "Comment" في الجانب الأيمن لنافذة "msgid". إذا قمت بأية أخطاء كجزء من علامات التنقيط أو بإضافة مسرّع لا حاجة له مثلاً، فسيقوم كيبيبل بتحديد النص بـ"faulty". هذا مفيد جداً حيث أنه ينبهك حول أية أخطاء خلال الترجمة ويقلل من احتمالات الخطأ. إن كان نص 'msgstr' فارغاً، يحدّد مباشرةً بأنه "غير مترجم". حالما تطبع أي حرف في تلك النافذة، يحدد النص على أنه نص "مترجم". رجاءً تحقق من صحّة ترجمتك قبل الانتقال إلى المدخلات التالية.
الترجمة التقريبية
حتى تستطيع استخدام الترجمة التقريبية، يجب أن تكون قد قمت بإنشاء قاعدة بيانات كما سبق ذكره. الترجمة التقريبية هي طريقة لتوفير وقتك بجعل كيبيبل يقوم بإعادة الكتابة عنك والنسخ واللصق للنصوص التي هي موجودة مسبقاً في قاعدة البيانات، أو أي ملفات 'PO' أخرى. سوف تقوم الترجمة التقريبية أيضاً باقتراح ترجمات لنصوص 'msgid' التي ليست في قاعدة البيانات أيضاً. بمعنى آخر، سوف تقوم ببعض التخمين. حالما تنتهي من إنشاء قاعدة بيانات الترجمة، يمكنك بدء تشغيل الترجمة التقريبية من قائمة Tools->Rough translation... قبل الضغط على زر "ابدأ"، تأكد من أن مربع الحوار يشابه الذي في figure، حتى يتم تحديد النصوص المترجمة حديثاً بـ"fuzzy". سوف يجبرك هذا والآخرين على مراجعة تلك الترجمات التقريبية (المخمنة) وتصحيح أي أخطاء محتملة وإعادة كتابتها.
gtranslator
إن كنت مستخدماً لجنوم و لم تكن تريد استخدام كيبيبل أو Poedit أو أنك تريد أن تجرب شيئاً جديداً، فجرب gTranslator :-) إن لم يكن لديك، فنزّل آخر إصدار مستقر من موقع gTranslator.
مشاريع الترجمة الجديدة والتوثيق العربي
إنه من المهم أن نشجع ونضع الخطط التي نوفر من خلالها المزيد من الترجمات للعديد من وثائق المصدر المفتوح المتوفرة؛ ليس لكي نشجع المزيد من المستخدمين العرب بأن يتنبهوا إلى لينكس والمصدر المفتوح فقط، بل لتثقيفهم حول ميزاته. نحن في أمس الحاجة إلى طريقة مؤتمتة نستطيع بها ترجمة العديد من وثائق المصدر المفتوح المتوفرة إلى العربية. هذه الأهمية والأولوية تأتي من واقع أن هذا العمل يجب أن يتم ضمن نطاق عربآيز وتحت مظلتها حيث أن عربآيز ستؤكد على وجود هذه الترجمات في مكان واحد بتنسيق متطابق جداً. هذا المكان "المركزي" للوثائق المترجمة سوف يرفع عبئاً ثقيلاً عن متحمس المصدر المفتوح العربي بأن لا تجبره أن يبحث بكامل الشبكة عن فتات المعلومات هنا وهناك. واحد من مهام عربآيز العديدة هو مركَزة كل المعرفة العربية حول المصدر المفتوح وبذلك تكون وسائلنا الجماعية هي مصدر قوتنا. الإجراء المطلوب فيما يتعلق بتقديم مشاريع ترجمة جديدة وأفضل طريقة للبدء بها وكيفية العمل على كتابة التوثيق العربي، مشروحة في first steps. نحن متشوقون جداً لسماع أفكارك وملاحظاتك.
مشاريع الترجمة الجديدة
حتى الوقت الحالي وحتى تصبح مشاريع الترجمة الحالية مزوّدة بطواقم إلى مستويات معقولة، خيار عربآيز هو التزام كدي وجنوم. سبب اختيار هاتين البيئتين كان بسيطاً؛ أردنا أن نصل إلى أقصى عدد من مستخدمي لينكس العرب الكامنين، ونمكنهم من أن يكونوا مستخدمي لينكس بشكل يومي ومعتاد. على كل حال، ندرك أن مظاهر أخرى من عالم المصدر المفتوح قد يكون لها نفس الأثر وأن بعض الجهد يجب أن يبذل في مجالات أخرى. لذا، إن كان ذاك رأيك وكانت لديك تطبيقات أو برامج موجودة، توثيق أو مشاريع تؤمن أنه يجب النظر فيها والمساهمة في ترجمتها إلى العربية، اشعر بالحرية بأن تشير إليها وسوف نناقش المسألة بكل سرور. وُجدت عربآيز للمساعدة وذلك ما سنفعله. مجدداً، رجاءً شاركنا خواطرك، أفكارك، وملاحظاتك!!
كتابة التوثيق العربي
يفتقر مسرح المصدر المفتوح للأسف إلى التوثيق العربي. يحاول عربآيز أن يملأ هذه الفجوة بالتوثيق بعدة أشكال عربية فيما يتعلق بعالم يونكس ولينكس. هذا التوثيق مهم جداً حيث أنه سيسمح للآخرين بالتعلم ممّا مرّ به واختبره أعضاء عربآيز. لسوء الحظ هذه العملية تستغرق وقتاً كثيراً وتتطلب الكثير من الوقت البشري لعملها بشكل صحيح. إن كنت تعتقد أن لديك المعرفة الكافية حول أي شيء يتعلق بعالم المصدر المفتوح: لينكس/يونكس، البرمجة (C/C++, python, HTML)، وغير ذلك من لغات :-) أو أنه ليس لديك معرفة كافية عن موضوع معين مثير للاهتمام والذي تنوي أن تبحث فيه أو تتصفح الإنترنت حوله، فرجاءً أعلمنا. نستطيع أن نرشدك إلى كيفية إنشاء لائحة بالمعلومات المطلوبة التي يمكنك جمعها في مستند بالعربية. مشاركتك محتاجة جداً ومطلوبة الآن!! أسمعنا ما تنويه وسوف نكون سعيدين جداً بأن نساعدك ونشجعك، وطبعاً أن نستضيف هذه الوثائق في موقع عربآيز.
ما يفعله المنسقون (وظائفهم، ومهامهم)
في ما يلي إرشاد عام ووصف لما تشمله وظيفة المترجم. على المنسق أن:
- يطلع على قدرات المتطوعين الحالية والمستقبلية ومستوى الالتزام (يعرف ما سيحققه المتطوعون والتفرقة بين من يعمل ثلاثين ساعة أسبوعياً ممّن يمضون ساعتين). هذا التقييم يجب التحقق منه مرة على الأقل كل شهر.
- يضع خطّة السير مفصلاً كيفية إكمال العمل المعني بوجود القوة البشرية الحالية، ونقصها. يجب الكشف على الخطة وتنقيحها مرة كل شهر.
- تعرض الخطة أولوية الملفات، من حيث الترجمة.
- تقسم الخطة العمل بحيث متى تطوع الناس فيمكنهم البدء، ومعرفة ما يبدؤون به وما لا يلمسوه.
- تعرض الخطة كذلك المراحل الزمنية التي يجب أن تتم لحساب موعد نهاية المشروع، كإصدارات كدي، أو جنوم إلخ.
- يختم الخطة بجدول المهام، بشكل موسّع. يجب أن يعلن هذا في لائحة المهام المتعلقة على موقع عربآيز، حتى يستطيع الناس معرفة من يعمل على ماذا وبالتالي يمكن للقادمين الجدد أن يختاروا بسهولة مهمةً تناسبهم.
- يبقي صفحات الموقع المتعلقة (على موقع عربآيز) محدثةً فيما يختص بالمعلومات والأولويات، بالإضافة إلى الوضْع.
- يرسل تقريراً بالوضْع إلى قائمة التوثيق 'doc' مرة كل شهر، ويكون التاريخ المحدد معتمداً على المشروع. سيكون ملف الوضْع بالتنسيق التالي، لتسهيل القراءة:
- تمّ الشهر الماضي (فبراير 2003 - مارس 2003):
- تم عمل هذا.
- تم إنهاء ذاك.
- ما يجب عمله الشهر القادم (مارس 2003 - أبريل 2003):
- إنهاء هذا.
- البدء بذاك.
- المشكلات/الهموم/المواعيد النهائية:
- نحتاج نصاً لهذا.
- نحتاج حساب SVN لفلان وفلان.
- الموعد النهائي: إصدار لـكدي في السادس من مايو 2003.
- يقوم بالتوظيف بشكل عام لمشاريعه. مهام المنسقين الرئيسية سوى التخطيط، والتنفيذ وصياغة مسار إلى النجاح سيكون توظيف فرقهم. هذا يعني أنه سيطلب من المنسقين أن يوظفوا أناساً لمساعدتهم، أي أنه يتوقع منهم أن يقوموا بإرسال نداءات للعديد من المواقع وللناس لطلب المساعدة. مسؤولية المنسقين أيضاً هي تشجيع الطاقم وجعل حياتهم أكثر متعة :-)