بسم الله الرحمن الرحيم
دليلُ استخدامِ WinCVS
مع أمثلة تطبيقية باستخدام الإصدار 1.3 للترجمة في موقع ArabEyes
بواسطة: أنس علي الموسى
anas.ali at gmail dot com
المحتويات
تَرْمز كلمة الـ CVS إلى نظام الإصدارات المتزامنة. و هو نظام تحكم في الإصدارات(النُّسخ) المختلفة للبرامج و النصوص،و قد ابتُدِىء بصناعته للاستخدام في مجال المصادر المفتوحة بواسطة كثير من الناس عام 1986.هدفه الأكبر هو السماح لعدد كبير من الناس في العمل على مشروع واحد في نفس الوقت بأقل تعارضات ممكنة.
النظام قائم على أساس الأوامر الكتابية،و هذا ما جعل بعض المطورين يطورون واجهات رسمية لتسهيل استخدام هذا النظام و سرعة الوصول إلى وظائفه المختلفة؛WinCVS هو أحد هذه الواجهات.
إن نظام الترجمة يستخدم ترميز معين للحروف يختلف عن الترميز الأمريكي القياسي (ASCII)،هذا الترميز يساعد على توحيد استخدام القراءة و الكتابة من قبل عدة جهات دون لبسٍ أو أي حاجة للتعديل،إن اسم نظام الترميز المستخدم بشكل شائع هو نظام الترميز الموحد unicode-utf-8 و سنتطرق إلى استخدام هذا النظام لاحقاً في هذه المقالة
يضع هذا المقال المبتدئين في الاعتبار، فإن شعرت أنك تستطيع التعلم بسرعة فاذهب إلى الملخص المفيد . أو إن شعرتَ أنّ بعض الطرقِ متقدمةٌ عليك كمبتديء،فربما أنك تستطيع تركها و اتّباع الطرق الأسهل،إن كانت مكتوبة.
لقد كُتِب هذا المَقالُ من أجلِ تعليم مستخدمي windows كيفية المشاركة في أعمال تعريب النظام لِنُكْسْ و مشاركتهم في تطوير برامجَ ذاتِ فائدةٍ للمستخدمين العرب ،و ذلك دون الحاجة لتغيير النظام الذي يستخدمونه حالياً.
ويقوم المقال بتطبيق هذا الهدف عن طريق تعليم المستخدِمين كيفية استعمال برنامج WinCVS في هذا المجال.
يركز المقال على عملية الترجمة في الدرجة الأُولى؛لسهولة البدء فيها و العمل عليها.
لقد ارْتأيتُ أن أقدم شرحاً مبسطاً لما ستفعلُه في عملية الترجمة،وذلك قبل أن أشرح لك عن البرامج المطلوبة أو الاختيارية،ليتسنّى لك أن تختار الأدوات التي تريدها من الأدوات الغير ضرورية لك.
تقوم عملية الترجمة على أساس بسيط. ستُقَدَّمُ لك النصوص المكتوبة باللغة الإنجليزية و ستقوم بكتابة الكلمات المرادفة لها باللغة العربية،ستحصل على النصوص الأجنبية الجاهزة عن طريق استخدام برنامج WinCVS (فأنت الآن تقوم بقراءة دليل استخدامه،أليس كذلك؟)،فما ذا عن عملية الترجمة؟ ، تكون عملية الترجمة بالبحث عن نصوص غير مترجمة في الملفات،و إدخال نصوص عربية في الأماكن المخصصة لها كما يلي:

و يستطيع الشخص فعل ذلك باستعمال أي محرر نصوص يدعم الترميز الموحد(utf-8) .
وقد تم تطوير بعض البرامج لتسهيل عملية الترجمة،حيث تقوم هي بعملية التعديل على الملفات النصيّة،بينما تقدم لك واجهة تسألك فيها إدخال الترجمات بشكل مباشر، ومثال على هذه البرامج هو برنامج POedit ، حيث يقدم لك واجهة شبيهة بما يلي:

و هذا يعني عدم الحاجة لمعرفة عمل أي شيء غير الترجمة فقط. و ربما تصادف بعض البرامج من هذا النوع بميزات إضافية مختلفة،مثل اقتراح الكلمة المناسبة مما يحفظه البرنامج من ترجماتك السابقة،و ميزات أخرى.
قبل الحديث عن البرامج المطلوبة و الروابط المؤدية لها،يجب أن ننبه إلى نقطة:إن بعض المواقع التي نشير إليها بروابط معينة قد تتغير فيما بعد،و بعض المواقع قد تمنع استخدام الروابط المباشرة لملفات التحميل عندها من خارج موقعها،و ذلك من أجل جلب عدد أكبر من القراء لقراءة موقعها. لذلك إن لم تستطع الوصول إلى رابط معين،عليك الذهاب إلى الموقع الأساسي للبرنامج(بكتابة العنوان الأساسي فقط) والبحث عن اسم البرنامج عن طريف تصفح الموقع ،أو قد تضطر للذهاب إلى محرك بحث للبحث عن اسم هذا البرنامج أو ذاك.
و بعض المواقع مثل الـ Source forge له طريقة يعتبرها البعض مربكة بعض الشيء لأخذ البرامج منه،و سنتطرق لها قريباً في هذه الفقرة.
و الأفضل دائما الذهاب إلى الموقع الرسمي للبرنامج و البحث عن روابط التحميل هناك.
إذا كنت من مستخدمي windows 95/98، فستحتاج على الأغلب إلى إعداد دعم هذا النظام للترميز الموحد utf-8.
أولاً سنتناول بالطبع جلب برنامج WinCVS . عند كتابة هذا المقال،كان الإصدار 1.3.17 متوفراً،بإمكانك تحميله مباشرة، أو اتباع الطريقة التالية،وهي أسلم من سابقتها لكونها أكثر دواماً و توفر لك دائما آخر إصدارة:
إذهب إلى موقع winCVS الرسمي في: http://wincvs.org ، و اتّبع الرابط الخاص بالتحميل(download)
انظر إلى آخر إصدارة ينصح بها (latest recommended release) ،و اختر المُرَكِّبْ(installer)،غالبا ما سوف تنقلك إلى مكان معين في موقع sourceforge.net .حيث سيكون المنظر شبيها بالصورة التالية:

اختر الموقع الأكثر قرباً لك (location) أو اختر عشوائيا أي من الأيقونات المشار إليها بالرسم، حيث ستنقل إلى صفحة أخرى و يبدأ التحميل ذاتيا..و لكن إن لم يحدث التحميل الذاتي لسبب ما ،أو أنك تريد تحميل الملف باستخدام أحد منظمات جلب الملفات مثل الـ(internet download manager). فما عليك إلا اتّباعُ الرابطِ الذي يظهر لك في الصفحة، كما يلي:

أحم...نظرياً، لن تحتاج سِوَى هذا البرنامج للاشتراك بمعمليات الترجمة،بما أنك تمتلك الـ notepad التي يتضمنها windows، سترى في الشرح لاحقاً أن هناك طريقتين للعمل،إما باستخدام محرر نصوص يدعم الترميز الموحدutf-8 كمحرر notepad، أو استخدام تطبيق يسهل عليك مهمتك مثل POedit (حجمه 2.5 ميغا بايت تقريبا)،سنشرح عنه لاحقاً،فإذا أردت أن تستعمله فإما أن تفعل ذلك مباشرة - و استخدام ذلك كما قلنا يحددك بالإصدارة التي كانت وقت كتابة هذا المقال - أو أن تذهب إلى موقع البرنامج http://poedit.sourceforge.net و تتتبع رابط الـDownload الخاص بمستخدمي windows و ذلك سيوصلك إلى فعل خطوات مماثلة تماما للخطوتين أعلاه؛الخاصتين في تحميل wincvs.
سترى في الشرح لاحقاّ أن هناك طريقتين للعمل،إما باستخدام محرر نصوص يدعم الترميز الموحدutf-8 كمحرر notepad، أو استخدام تطبيق يسهل عليك مهمتك
حسناّ،إذا قررت يوما التقدم و الاحتراف في عمل الـCVS فلن تستغني عن أداتين مهمتين مفيدتين لـ WinCVS ،هما دعم الـTCL و دعم الـpython، و حجمهما أقرب للكبير نسبة لخط تلفوني.
و أنا أنصح بتركيب python على الأقل،و لو أنه غير مهم لعملية الترجمة التي تنوي فِعْلَها.
أما إن لم ترد استخدام الـPOedit و أردت محرِّرَ نصوص متقدمٍ أكثر من الـnotepad ، فـBabel Pad يشكل اختياراً لا بأس منه، فإذا أحببت اختيار محرر آخر،فحاول أن يكون يدعم الرموز العربية في الترميز الموحد،فتجربتي لبرنامج الـTextPad مثلاً،؛بينت لي أنه يدعم الترميز الموحد و مع ذلك لا تستطيع الكتابة أو القراءة بالعربية باستخدامه.
بعض المستخدمين،قد يحب الإطلاع على الفروقات بين بعض الملفات .. فإذا أحب أن يكون ذلك باستخدام واجهة رسمية، فيمكنه استخدام برامج مثل Exam Diff و Win Merge ، ولكن للأسف فإنها لا تدعم العربية؛فلم أجد أي برنامج منها يدعم الترميز الموحد من بين أربع برامج ،و مع ذلك فإنك تستطيع معرفة السطور المختلفة بين الملفات.
إعداد البرامج سهل لجميع مستخدمي windows، فما عليك سوى فرش البرامج داخل الحاسوب،أو إذا كان البرنامج داخل ملف مضغوط (zip.) مثلاً، فما عليك سوى فرْد محتويات هذا الملف بواسطة برنامج متخصص بهذا،مثل WinZip الذي تستطيع البحث عنه في http://download.com.
نأتي الآن للتفاعل مع WinCVS ،عند تشغيله سوف يطلعك على فكرة اليوم،ثم يُنْبِأُكَ أن Python غير مركبة على جهازك، أعطه الـOK و لنبدأ العمل الدءوب، (كنت أظن الهمزة هنا فوق الواو وليست على السطر(الدؤوب)،و لكن المدقق الإملائي أعلن اعتراضه.غريب!)
بعد أن تدخل البرنامج،و قبل أن نأتي لعملية شرح الواجهة،يجب أن نشرح كيفية إعداد البرنامج ليصبح صالحاً للدخول على خادم موقع عرب آيز الخاص بالـCVS
إدخل عن طريق القائمة العلوية إلى Admin - preferences

و ستجد أن نافذةً حِوَارِيّةً ستظهر لك سائلةً عن بعض المعلومات. عبئ هذه المعلومات كما هو مبيّنٌ في الشكل الآتي:

و هذه المعلومات هي:(من أجل أن تنسخها و تلصقها هناك)
Authentication pserver
Path: /home/arabeyes/cvs
Host address: cvs.arabeyes.org
username: /anoncvs
إن اسم المستخدم anoncvs مؤقت،حيث يتيح لك جَلْبَ الملفات و تعديلها عندك، و لكن لن يتيح لك إرسالها للخادم مجدداً بعد تعديلها، من أجل البدء بالترجمة الحقيقية يجب أن تبعث برسالة إلى doc@arabeyes.org مُخْبِراً أنك تودُّ الاشتراك في ترجمة أحد المشاريع التي تريدها(مثل kde أو Genome) أو أنك تريد الاشتراك بأي مشروع؛إذا كنت لم تقرّرْ بعد أو لا تعلم.
على أي حال، نحن نستطيع عمل التجارب المفيدة باسم المستخدم anoncvs دون مُعَوِّقَات.
و الآن ، إن كنت تصل للإنترنت عن طريق وكيل(proxy) ،سواء وكيل لكل مشتركي الدولة كما هو الحال في سورية و السعودية و الإمارات ، أو إن كنت في مؤسسة تستخدم شبكة داخلية للوصول للإنترنت كمعظم الجامعات. فاضغط زر Settings المبيَّن في الشكل أعلاه،و أدخل معلومات الوكيل كما يلي:

| لمحة: | إن كنت لا تعلم إنْ أنتَ مُتَّصِلٌ بالإنترنت عن طريق وكيل أو كنت لا تعلم ما هو عنوان الوكيل المتُصِلِ أنتَ من خلاله،فتستطيع معرفة ذلك من إعدادات متصفح الإنترنت،فإن كان متصفحك هو Internet Explorer فافعل ذلك من قائمة أدوات - خيارات الإنترنت - واختر لسان الاتصالات ،بعد ذلك انظر إلى إعدادات LAN إن كنت في شبكة حواسيب داخلية،أو اختر اسم الاتصال الذي تتصل عن طريقه، واضغط إعدادات..سترى أن معلومات الوكيل -إن وُجِد- موجودة هناك. |
و من ثمّ، أنصحك بالذهاب إلى لسان Globals و وضع إشارة عند TCP Compression و اختيار الرقم 9 :

حيث سيؤدي ذلك إلى ضغط المعلومات المتبادلة على الانترنت بينك و بين الخادم، مما يقلل من الوقت المستهلك في نقل الملفات.
حسناً، إن كنت ممن يريدون استخدام برامج مساعدة أُخرى في عملية الترجمة ، مثل برنامج POedit ، فبإمكانك ضبط هذا من هنا:(أقصد من نفس النافذة الحوارية Admin - preference، إذهب إلى اللسان WinCvs ،ثم أدخل السبيل الخاص بالمحرر في مربع إجابة editor و أو إن احْتَجْتَ لمقارنة ملفات و رَغِبْتَ بمُقَارِن ملفات ذو واجهة رسمية أو عادية من اختيارك فعليك وضع إشارة بجانب (External diff) و وضع السبيل الخاص به في مربع الإجابة الذي بجانبه:

هكذا نكون انتهينا من إعداد WinCVS للعمل.
إن الملفات التي ينبغي ترجمتها محزمة إلى حزم تبعا لأي برنامج هي تابعة، يطلق على الواحدة منها اسم وَحدة(module).
لجلب الملفات و إرجاعها إلى الخادم يجب أن تسجل دخولك في النظام، و ذلك بواسطة الأمر login من قائمة Admin :

ثم أعط الـOK للنافذة
الحوارية التي يسألك فيها تأكيد معلومات الـlogin.
سيسألك عن كلمة السر، أعطه anoncvs،وهي نفس الاسم في هذه
الحالة.بالطبع عليك وضع اسم مستخدم و كلمة سر أخريين حينما تحصل على اسم وكلمة سر
جديدتان من doc@arabeyes.org.
حسناً، لا بدّ أنك لاحظت وجود ثلاث نوافذ داخلية في الـWinCVS، السُّفلى منها تسمى نافذة النتائِجْ أو نافذة الخَرْج..و سوف تكون شبيهة في بداية تشغيل البرنامج بما يلي:

و هذه النافذة مهمة جداً لمعرفة نتائج أعمالك،و إن
رَكَّبْتَ TCL أو Python
ستستطيع كتابة أوامر كتابية في هذه النافذة لينفذها الـWinCVS
.
والآن، بما أنك مسجلٌ لدخولك في النظام ، فما عليك إلا أن تجلب الملفات الخاصة بالترجمة،وذلك عن طريق Remote - Checkout module من القائمة الأساسية ..
حيث ستظهر لك نافذة حوارية سائلةً عن اسم الوحدة التي تريد جلبها.
اكتب اسم translate في
إجابة module name and path، ما لم تكن أخبرت بغير
ذلك في مجموعة doc في arabeyes
.حيث أن translate تحتوي معظم أعمال الترجمة
المطلوبة،أما إذا كنت تريد رؤية ملفات أحد المشاريع المضمنة في
translate فقط، فبإمكانك وضع trnslate/kde
مثلاً.بإمكانك استعراض الوحدات الموجودة عند الخادم بالضغط على الزر ذو
الثلاث نقط بجانب صندوق الإجابة.
ضع اسم المجلّد الذي تريد استخدامه كمُحْتَوٍ للملفات كإجابة لـ Local folder to checkout to ،أو استعرض المجلدات واختر واحداً.
إذا كان المجلد الذي قمت بكتابة اسمه غير موجود في
جهازك،فسيسألك إن كنت تود إنشاءه،أجبه بالموافقة(yes).
لن تحتاج المساس بالخيارات الأخرى في هذه المرحلة،أعطه الـOK و راقب ماذا يحصل في نافذة النتائج،إذا حصل أي أخطاء في أي المرحلة فستُشرح لك عن طريق تلك النافذة.
إن عملية جلب النتائج قد تَطُولُ عليك و قد تَقْصُر،تبعاً لما أنت قررت جلبه من الوحدات،و تبعاً لنوع اتصالك بالانترنت.
عند الانتهاء من جلب الملفات، ليس ضرورياً بقاءك متصل في الإنترنت، أو البقاء مسجلاً لعملية دخولك على الخادم.
تذكر أن أي عملية تواصلية مع الخادم تحتاج إلى تسجيل الدخول ، وذلك يشمل (checkout, update, commit, add)
الآن ستجد نفسك أما كم لا بأس به من الملفات،حيث سترى أن wincvs ينظم الملفات بشكل شبيه لما تراه في الصورة:

و الآن العمل بسيط ، إعمل على ترجمة الملفات التي تطلب منك،صِلْ لهذه الملفت عن طريق نافذة اختيار الدليل،ثم قم بتحرير الملفات عن طريق اختيار Edit with editor من قائمة السياق كما في الصورة:

| ملاحظة |
سنقوم هنا بتغطية استعمال POedit في الترجمة، إذا كنت راغباً في استعمال محرر نصوص عادي، فعليك قراءة دليل translator-guide القسم الخاص بـ Common Guidelines and Recommendations، تستطيع إيجاد الدليل في قسم التوثيق في عربآيز. |
سوف تظهر أمامك واجهة POedit ،يسألك في البداية عن اسمك و بريدك الإلكتروني، و إجابته في ذلك ضرورية؛لكي يكتب هذه المعلومات داخل الملف الذي تترجمه..أما إن لم يسألك عنهما،فعليك تعبئتهما من File - preferences :

|
نصيحة |
عند كتابة بريدك الإلكتروني في صفحات سوف تنشر على الإنترنت، أكتبه في الشكل المكتوب بالصورة أعلاه؛ كيلا تستطيع برامج معرفة البريد المؤتمتة معرفة بريدك الإلكتروني. |
و عليك التأكد جيداً
من أن المعلومات التالية مكتوبة في Catalog - settings
و لا تهتم إلى المعلومات الأخرى
Project name and version: the same file name without the .po extension
Team : Arabeyes
Team's email address: support@arabeyes.org
Language: Arabic
Charset: utf-8
حسناً، ما عليك الآن إلا ترجمة النصوص المعروضة،بإمكانك الاستعانة بالمساعدة الخاصة بـPOedit في معرفة المزيد،إن نافذة كتابة الترجمة هي التي في الأسفل إلى اليسار،يمكنك كتابة أي تعليقات في النافذة اليمنى، و إذا شككت في ترجمة سطر من سطورك أو لم تكن متأكدا من هذه الترجمة، فضع علامة fuzzy في ذلك السطر، عن طريق edit-Translation is fuzzy من القائمة الرئيسية أو عن طريق الضغط على الزر الخاص بذلك في شريط الأدوات،(حالياً له رسم شبح).
تذكر: إذا رأيت علامات مثل s% أو tags مثل <task> , و <task/> أو $ أو n/ فعليك وضعها مثلما هي، في ترتيبها ، ولو ظهرت بشكل غريب مثل أن تظهر علامة n/ كـ /n فعليك كتابتها على لوحة المفاتيح بترتيبها الأولي، و مهم مراجعة translator-guide من ملفات التوثيق في عربآيز في هذا المجال و مهم أن تحاول قراءة doc standerds في نفس الموقع.
هناك قاعدة بيانات اسمها قاموس، موجودة في عربآيز ، لتسهل التفاهم حول الكلمات المتفق عليها،فارجع لهذه القاعدة عند احتياجك لترجمة بعض المصطلحات،و تستطيع اقتراح تغيير للترجمة على نفس الموقع،وهو http://qamoose.arabeyes.org ، أو بإمكانك الذهاب إلى القاموس المبسط: http://qamoose.arabeyes.org/miniQ.cgi
و الآن ، عليك حفظ الملف بعد الانتهاء من ترجمة بعضه أو كله،ولكن هناك احتساب: عندما يطلب منك ترجمة ملف، فابحث عن اسمه و أن يكون امتداده (تصنيفه) هو po ، فإن لم تجد سوى الملف ذا التصنيف pot، فهذا يعني أنك أول من سيترجمه،و بهذا عليك أن تنسخ نسخة من ملف الترجمة بتصنيف po ،تستطيع ذلك في عملية الحفظ بعد الترجمة..إذا كان الملف الذي تترجمه يحمل التصنيف po فليس هناك خطوة غير حفظه،أما إن كان الملف يحمل التصنيف pot فعليك أن تستخدم عملية save As و تحفظه باستخدام التصنيف po ، كما في الصورة أسفل الكلام. إن حفظ أي ملف باستخدام الامتداد po يعني أن عملية الترجمة عليه قد بدأت، وستستمر في المرات القادمة في التعديل على po.

في حالة التغيير من pot إلى po،(يعني أنك أول من بدأ الترجمة على الملف)، فيجب عليك إضافة ملف po الجديد إلى الخادم(بعد تسجيل الدخول login،عن طريق wincvs بواسطة اختيار الملف و من ثم الأمر Modify - Add selection كما في الصورة التالية

و الآن بعد حفظ الملف أو إضافته، هناك خطوتان أخيرتان، تقتضي الأولى عمل تحديث للملف الذي تترجمه من الخادم،عن طريق
Modify - update selection من القائمة الأساسية ، أو عن طريق قائمة السياق عند النقرة اليمنى على الملف.
و من المفيد إجراء تحديث على الملف بين الفينة و الأخرى، و هذا لا يمحُ عملك الذي عملته على الملف.
و من ثم عليك إرسال الملف إلى الخادم ، عن طريق إجراء Commit ب طريقة مشابهة لما فعلته في Add selection أو من قائمة السياق ،سيطلب منك تلخيصاً لعملية الترجمة(أو مالتغيير الذي طرأ على الملف) أجبه بشكل متقن عن طريق كتابة عدد النصوص التي ترجمت و التي لم تترجم و عدد النصوص الـfuzzy في الملف الذي تقوم بعمل commit له،فهذا مهم جداً. هل تعلم أن POedit يستطيع تنظيم هذه الإحصائيات:
في POedit ، إذهب إلى file-catalogs manager من القائمة الرئيسية، ثم أَنْشِيء new catalog ، سمّه باسم المشروع الفرعي الذي تعمل عليه،و أعطه السبيل (path) الذي يضم الملفات،أي أعطه سبيل الدليل الحاوي للملفات التي أنت تعمل حالياً على أحدها..ثم الـOK و انتهينا.سيعطيك الإحصائيات التي يطلبها الcommit عن كل الملفات في الدليل المُعْطَى، بما فيها ملفك الذي تعمل عليه.
إذا حدثت معك حالة تسمى conflict ، -وهذا نادر- إطلع على مقالة cvs howto
|
تذكّر |
لن تستطيع إرسال تعديلات إلى الخادم إلا بواسطة اسم مستخدم و كلمة سر غير العامّين الذين استخدمناهما في الوضع التجريبي (أقصد anoncvs) ، ولهذا تذكر أنه عليك الاشتراك بـ doc@arabeyes.org عن طريق http://arabeyes.org/mailinglists.php و التراسل مع doc، ومن ثم التعبير عن رغبتك بالاشتراك بترجمة شيء معين، و عبِّر عن إطلاعك على الوثائق التعليمية في الموقع إذا كنت قد فعلت(translator guide,doc standerd,...etc) |
حسناً، دائماً تذكر أن يكون الملف الذي تجري عليه الcommit هو ملف po وليس pot
و لاحظ أن هذا المقال يساعدك على البدء بالترجمة بسرعة، ولكن يجب أن تتعلم و تقرأ ما هو موجود في http://arabeyes.org/docs.php و تتطلع على كيفية الترجمة بشكل كامل و مرتب. من المهم أن أن تقرأ translators guide بالذات.
وهذا هو كل شيء، أتمنى من الله السداد ، ومن القرّاء المراجعة و النقدْ.
عند بروز أي مشاكل ، لا تتردد بالإرسال إلى doc@arabeyes.org بعد الاشتراك فيها، ولا تكن خجولاً من التساؤل،فليس هناك عيب في جهل شيء ،عن عبدُاللَّهِ بنُ مسعودٍ: أَغْدُ عالِماً أوْ متعلِّماً ولا خيرَ فيما سِواهُمَا. على أي حال ، أرسل لي في حال بروز مشاكل أو عقبات و كنتَ خجولاً في التساؤل عنها أمام mailing list.
Authentication pserver
Path: /home/arabeyes/cvs
Host address: cvs.arabeyes.org
username: /anoncvs
Team : Arabeyes
Team's email address: support@arabeyes.org
Language: Arabic
Charset: utf-8
و الحمد لله رب العالمين
إصدارة
نظام الإصدارات المتزامنة
المصادر المفتوحة
تصادم
واجهة
واجهة رسمية
المُرَكِّبْ
خادم
السبيل
لسان
وحدة