لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 07/10/22 في كل الموقع
-
قبل البدء بتعلم إطار دجانغو، عليك دراسة أساسيات لغة بايثون، وبنى المعطيات الي تقدمها اللغة والإلمام بالبرمجة كائنية التوجه وتطبيقها في بايثون. يمكنك الوصول لدروس بايثون من الرابط: academy.hsoub / programming / python توفر أكاديمية حسوب العديد من الشروحات فيما يتعلق بإطار العمل Django يمكن الوصول لهم من الرابط: academy.hsoub / python / django الأساسيات: كيفية تنصيب الإطار والمكتبات وتهيئة بيئة العمل التعامل مع النماذج Model وقواعد البيانات التوجيه Routing و بروتوكول HTTP التعامل مع الاستمارات Form التعامل مع ملفات العرض View2 نقاط
-
رأيت موقع كثيرة تشغل اذاعاة الراديو، كيف يفعلون هذا هل يوجد api يتم استقباله بي جافا سكربت، او ماهي الكيفية بالضبط1 نقطة
-
<?php if(isset($a)) $sql = "DELETE FROM estshara WHERE id=$a"; if($conn->query($sql) === true ){ echo "تم الحذف بنجاح"; } else { echo "لم يتم الحذف" ; } ?>1 نقطة
-
مرحبا جميعا تحيه طيبه للجميع أحاول استعمال LEFT JOIN اكثر من مره لنفس الجدول الامر ناجح لدي ولكن المشكلة في الجملة الشرطيه الكود كالتالي: $sql="SELECT * FROM BookSpecifications LEFT JOIN FeaturesBook AS A ON A.t1 = BookSpecifications.IDBookSpecifications LEFT JOIN FeaturesBook AS B ON B.t2 = BookSpecifications.IDBookSpecifications WHERE A.IDSubject ='145' " ; الكود بشكل أعلاه يعمل بشكل جيد ولكني احتاج الى وضع شرط لسطر الثاني ال IDSubject هنا احصل عليها من جدول FeaturesBook بحيث يصبح كالتالي: $sql="SELECT * FROM BookSpecifications LEFT JOIN FeaturesBook AS A ON A.t1 = BookSpecifications.IDBookSpecifications LEFT JOIN FeaturesBook AS B ON B.t2 = BookSpecifications.IDBookSpecifications WHERE A.IDSubject ='145' AND B.IDSubject ='145' " ; بمعنى احضر السطرين لو يمتلكون IDSubject المذكور ولكن الان الكود لا يعمل لا اعلم لماذا ولكني احتاج الى وضع شرطين هل يوجد حل مختلف او ان طريقتي خطاء الذي وضعتها ؟ ياليت من لديه فكره عن الامر يفيدنا1 نقطة
-
مرحبا اخي الكريم بارك لك فيك وزادك من واسع فضله الطريقة تعمل بشكل ممتاز والله يا اخوي انا بنفسي الامر لحس مخي قليلا ما أحاول القيام به عباره عن جدولين الجدول الأول يحتوي على جميع الوان الكتب وثاني سوف يتم تخزين فيه الألوان التي يختارها المستخدم بحيث يمكنه اختيار اكثر من لون بعدها اقوم بالاستعلام عن الجدول الثاني الذي انا فقط أقوم بحفظ id فيه التي حصلت عليها من الجدول الاول بمعنى ان الجدول الثاني عباره عن معرفها او ID مختلفات ولكن قد يكون المستخدم قام بعملية تخزين اكثر من معرف لذلك سيكون معرف المستخدم يمتلك اكثر من ID لنفس الكتاب الامر ملخبط شوية ولكن هذا ابسط طريقة وجدتها مناسبه لعمل الامر بسبب رغبتي بفصل هذا الجزء عن جدول البيانات الأساسي حتى يسهل التعامل معها1 نقطة
-
من الأفضل ذكر الغرض من الاستعلام بشكل عام ليصبح من السهل التفكير السليم بأفضل طريقة لجلب البيانات. دمج جدول مع نفسه هو عملية نقوم بها عند وجود علاقة بين كينونات (أسطر) نفس الجدول، مثل تصنيفات جزئية لتصنيفات رئيسية أو علاقة المدير مع موظفيه (رقم المدير يكون مفتاح في حقل رقم الموظف) بشكل آخر لكل موظف مدير.. علاقة متعدية. كما ترى، أنت تبحث عن تساوي خاصيتين من نسختين من الجدول لقيمة واحدة FeaturesBook AS A ON A.t1 = BookSpecifications.IDBookSpecifications ^^^^ FeaturesBook AS B ON B.t2 = BookSpecifications.IDBookSpecifications ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ إن كان الاستعلام غير مفهوم الهدف، فمن الصعب معرفة الحل الخاص به. جرب الحل: $sql=" SELECT * FROM BookSpecifications As B LEFT JOIN FeaturesBook AS F ON F.t1 = B.IDBookSpecifications or F.t2 = B.IDBookSpecifications WHERE F.IDSubject ='145';" ;1 نقطة
-
أرغب في اتباع نمط RESTful لمشروع جانغو Django جديد، وأريد أن أعرف مكان بيانات الطلب عند إجراء طلب من نوع PUT / DELETE حاول التحقق من نوع الطلب والوصول إلى بيانات الطلب بالشكل التالي: if request.method == "PUT": someparam = request.PUT["description"] لكن يبدو أن هذه الطريقة غير صحيحة. قرأت أنه يمكن إستعمال الكائن QueryDict لحل هذه المشكلة، ولكن لا أعرف كيف أقوم بذلك بالضبط؟1 نقطة
-
هل يعتبر ملئ الاستبيانات واختصار الروابط من طرق الربح وكسب المال عن طريق الإنترنت ؟ وإذا كان الجواب بالإيجاب فما هي المواقع التي يمكنني الثقة بها وبدء العمل عن طريقها ؟ وجزاكم الله خيرا. Earn money via the internet1 نقطة
-
قمت بكتابة كود يبدل العدد ب العاملي للعدد" أو ما يسمى Factorial لكن عند تجربة الكود احصل على ارقام عشوائية غير صحيحة سأقوم بمشاركة الكود ,أرجو المساعدة #include <iostream> using namespace std; int Factoriall(int n); int main() { int a[8], i, j, n, k; cout << "enter size of array\n"; cin >> n; cout << "\n insert the items..\n"; for (i = 0; i < n; i++) cin >> a[i]; for (i = 0; i < n; i++) { for (j = 2; j < a[i]; j++) { if (a[i] % j != 0) a[i] = f(a[i]); } } for (k = 0; k < n; k++) cout << a[k] << " "; } int Factoriall(int n) { if ((n == 0) || (n == 1)) return 1; else return n * f(n - 1); return 0; }1 نقطة
-
الخطوات المنطقية في تسلسل الشيفرة لديك صحيحة، لكن فكرة حساب هل العدد أولي أم لا يجب أن يتم تعديلها لكي تعمل بشكل صحيح. لكل عدد في المصفوفة، نفرض أنه أولي، إن قبل القسمة على عدد أقل منه يصبح غير أولي، إن بقي العدد ألي نحسب العاملي له for (i = 0; i < n; i++) { bool prime = true; for (j = 2; j < a[i]; j++) { if (a[i] % j == 0) // قبل القسمة على عدد أصغر منه prime = false; } if (prime) a[i] = Factorial(a[i]); }1 نقطة
-
كيف يمكنني معرفة ما إذا كان يتم استدعاء أحد العروض Views في بيئة اختبار Test Mode؟ أفكر في تطبيق هذا الكود، ولكن المشكلة أني لا أعرف كيف أقوم بذلك بشكل صحيح في جانغو Django: TEST_ENVIRONMENT = is_test_mode() # كيف أقوم بتطبيق هذه الدالة هنا def my_view(request): if not TEST_ENVIRONMENT: # ...1 نقطة
-
يمكنك إستخدام المكتبة sys لمعرفة إن تم تمرير كلمة test ضمن أمر تشغيل المشروع أم لا: # settings.py import sys TEST_ENVIRONMENT = len(sys.argv) > 1 and sys.argv[1] == 'test' بعد ذلك يمكنك الوصول إلى المتغير TEST_ENVIRONMENT في أي مكان في المشروع بالشكل التالي: from django.conf import settings if settings.TEST_ENVIRONMENT: # ...1 نقطة
-
أقوم بإنشاء عدد قليل من المستخدمين بشكل افتراضي في الملف fixtures/initial_data.json الخاص بي حتى يكون لدي بعض "المستخدمين" لإستعمالهم في الاختبار Testing. المشكلة التي أواجهها الآن هي إنشاء كلمة المرور عشوائية لكل مستخدم. بالتأكيد يمكنني تعيين كلمة المرور ثابتة في الملف نفسه، لكن ذلك لن يؤدي إلى إنشاء كلمة مرور بسيطة وظاهرة للعيان: [ { "model": "auth.user", "pk": 1, "fields": { "username": "firstuser", "password": "random password" } } ] هل توجد طريقة لتوليد كلمة مرور عشوائية ومعماه Hashed بطريقة سهلة في جانغو Django؟1 نقطة
-
يمكنك أن تقوم بهذا الأمر بشكل سهل إن كان لديك عدد صغير من المستخدمين تريد توليدهم، وذلك من خلال إستخدام لوحة admin وعمل بعض المستخدمين المزيفين (بما في ذلك كلمات المرور)، ثم تفريغ هؤلاء المستخدمين في ملف التركيبات fixtures باستخدام Dumpdata على النحو التالي: django-admin dumpdata auth.User --indent 4 > users.json الجزء indent 4-- هو لتنسيق شكل الملف الناتج فقط وهو أمر إختياري، وفي النهاية ستجد اسم الملف users.json ويمكنك تغير إلى أي شيء تريده. بعد ذلك يمكنك أن تقوم بإستدعاء هذا الملف وتحميل محتوياته من خلال الأمر loaddata كما يلي: django-admin loaddata fixture users.json ملاحظة: يمكنك أن تقوم بإنشاء حساب مزيف واحد واستخدام Hashes في باقي fixtures الموجودة لديك إذا كنت بحاجة إلى الكثير من المستخدمين للاختبار1 نقطة
-
بعد الانتهاء من تعلم front end ماهو المسار (الأساسيات اللازمة) لتعلم Django ؟1 نقطة
-
Django إيطار عمل يمكنك بناء فيه كل من frontend و backend حيث يمكنك إضافة قوالب HTML , CSS و Js لمشروعك في ما يسمى template في Django. لتعلم Django يجب أن يكون لديك الخبرات التالية بالترتيب: معرفة عامة عن طريقة عمل مواقع الويب مثلاً ما هو سيرفر و كيف يتواصل السيرفر مع المتصفح و كيف يتم إظهار الصفحة الويب على المتصفح. معرفة عامة في OOP أو ما يسمى بالبرمجة الكائنية. يفترض أن تكون لديك خبرة فيها في حال تعملت لغة برمجة مسبقاً. تعلم أساسيات لغة بايثون و ما برمجة OOP فيها. حيث تعتبر لغة البايثون من أسهل لغات البرمجة حالياً و يمكن أستخدامها في الكثير من المجالات. تعلم HTML و CSS و JS. لا تحتاج لتعلمها في حال كنت تريد العمل على جزء backend فقط بستخدام restful API والذي سوف أتكلم عنه في نهاية. تعلم إيطار العمل Django. بعض الملاحظات بعد تعلم كل من هذه الأمور سيتطب منك رفع خبرتك في أمور التالية: تعلم واحدة أو أكثر من أنواع قواعد البيانات Django. في أصل عند تشغيلها لأول مرة أو إعداد مشروع تعمل على SQLite ولكن للمشاريع الضخمة تحتاجين لتعامل مع أنواع أخرى مثل: MySQL PostgreSQL وغيرها حسب طلب العمل. في حال كنت تريد فصل عمل frontend عن backend يتم تطوير backend ب restful API. ويمكنك بحث عن طريقة تطوير backend Django ب restful API و بعدها ربط API الخاص بك في أحد أطر تطوير الواجهات الأخرى مثل react JS أو angular أو Vue و غيرها. لكن كما ذكرت أنه يمكن ل Django تطوير أي موقع بشكل كامل.1 نقطة
-
<?php echo "[<a href='delete.php?a=$row[id]'onclick='return confermdelete()'>delete </a>]" ?></td> صفحة الحذف الكود يعمل جيداااا على السيرفر المحلى فما هى المشكلة عند تنفيذه على الاستضافة مع خالص تحياتى وامتنانى اعتقد ان المشكلة فى هذا السطر if($conn->query($sql) === true ){1 نقطة
-
السلام عليكم في كتاب Learning PHP MySQL JavaScript With jQuery CSS HTML5 4th_Edition في هذا الفصل يتكلم عن إعدادات خادم التطوير لكنني لم جيدا ماذا يقصد بالضبط في هذه الأسطر التي ارفقتها ممكن شرح عما يقصده المؤلف ؟:1 نقطة
-
أول قسم: أعتقد أن ما يقصده الكاتب في development server هو أن يكون لكل مطور سيرفر خاص به، يرفع عليه المشاريع للتجريب. لأنه في حال غير ذلك سوف يرفع مشاريعه على استضافات مجانية أو أي خدمة لتشغيل المشروع مثل heroku مثلاً ويمكن أن يكون هذا الأمر مشتتاً. وسوف يتعلق ذلك بسرعة رفه و تعديل الملفات و تشغيل الخادم و التطبيق.. ثاني قسم: ومن ثم عمل مقارنة بين تطوير المشاريع محليا Locally (التي يعتبرها أفضل لأن التعديلات على الملفات وإعادة تشغيل السيرفر المحلي تكون لحظية و سريعة) ولا تحتاج أكثر من تحديث المتصفح و قارنها بوضع المشروع على سيرفر حقيقي أنه يتطلب منه رفع التعديلات طيلة الوقت مهما كانت بسيطة وهذا يؤخر التطوير. طبعاً نقوم بإنشاء المشروع و تطويره محلياً ثم نقوم بنشر المشروع للخطوات المرحلية (المتوسطة الحجم) على سيرفر حقيقي لتجريب أداء التطبيق، لأنه لن يكون بنفس كفائة تشغيله محلياً.1 نقطة
-
الشفرة التالية هى شفرة الاضافة وهى تعمل جيداااا <?php $BB=$_POST{'A'}; $CC=$_POST{'B'}; $DD=$_POST{'C'}; $EE=$_POST{'D'}; $FF=$_POST{'E'}; $image=addslashes(file_get_contents($_FILES['image']['tmp_name'])); include('db.php'); $sql = "insert into estshara (A,B,C,D,E,image) values ('$BB','$CC','$DD','$EE','$FF','$image')"; if($conn->query($sql) === true ){ echo "yes"; } else { echo "no" ; } ?> شفرة الحذف التالية لاتعمل <?php if(isset($a)) $sql = "DELETE FROM WHERE id=$a"; if($conn->query($sql) === true ){ echo "تم الحذف بنجاح"; } else { echo "لم يتم الحذف" ; } ?> شفرة التعديل التالية لاتعمل <?php $FF=$_POST{'E'}; $image=addslashes(file_get_contents($_FILES['image']['tmp_name'])); $id_up=$_POST{id_up}; include('db.php'); $sql = "update estshara set E='$FF', image='$image' where id='$id_up'"; if($conn->query($sql) === true ){ echo "yes"; } else { echo "no" ; } ?>1 نقطة
-
تم التاكد من هذه الملاحظات وايضا لم يتم عمل الكود1 نقطة
-
1 نقطة
-
1 نقطة
-
مبدئيا، كلاهما يغطيان كل من النقاط التي تصفينها. لارافيل يمكنه بناء متجر الكتروني متكامل و Asp.net أيضا. لارافيل يربط مع وسائل الدفع بشكل عادي، و Asp.net أيضا. يمكن تشغيل كليهما ورفعه بصورة جد عادية. يغطي كليهما كمية هائلة من الاضافات والوحدات الجاهزة. يمكنك العمل بكليهما. من ناحية السرعة والآداء يعد Asp.net أسرع نسبيا من لارافيل من ناحية تنفيذ الشيفرات. رغم أن هذا معيار السرعة يتحكم فيه أكثر ما هو من كون اللغة مفسرة او مترجمة. من مثل جودة الشيفرات. من ناحية قابلية التوسع كلاهما يفي بالغرض، ويمكن بناء مشاريع متوسطة الى كبيرة قابلة للتوسع بكليهما. من ناحية التكلفة أظن ان ASP.net يفرض رسوما شهرية اضافية من ناحية الاستضافة، على عكس لارافيل التي تكون رسومه قياسية وخاصة بخدمات الاستضافة فقط. سوق العمل لو تحدثنا عن السوق العربي كعينة والتنقيات المطلوبة في مواقع حسوب حصرا (مثل خمسات ، مستقل وبعيد)، سنلحظ أن لارافيل مطلوب أكثر من .Net بشكل كبير سواء من اصحاب المشاريع أو من المقبلين على المجال أو حتى من ناحية المطورين المشتغلين بالفعل (يمكنك استعراض ذلك نفسك). أما من ناحية الحصة السوقية العالمية لـ asp.net فهي شريحة اكبر من لارافيل إذ يأخذ asp.net نسبة 8.18 من حصة السوق بحجم 82 مليون نقطة وصول في حين ان لارافيل يأخذ 0.32 بحجم 7 ملايين نقطة وصول contact حسب موقع Datanyze. طبعا لا يخفى أن Asp.net موجود من قبل لارافيل، وهو شيء يجب الالتفات اليه هو الآخر. الاقبال المتزايد على لارافيل يعطيه أفضلية أيضا. في الأخير، حددي شريحتك المستهدفة. طبيعة مشاريعك التي تتوقعين العمل عليها. ثم اختاري احدهما. فكلاهما يفي بالغرض.1 نقطة
-
يجب استدعاء دالة تهيئة الأب أولاً: @override void initState() { super.initState(); BooksType(); } أرجو تمرير اسم الدالة فقط للخاصية future وعدم استدعائها ضمن صنف الباني FutureBuilder( future: BooksType(), ^^^^^^ الصحيح FutureBuilder( future: BooksType, فهي دالة غير متزامنة Async. في حال بقاء أخطاء، أرجو تحديد في أي سطر1 نقطة
-
تقوم الطريقة الثانية ب تصفية قيم empty or NULL في queryset أي قيم None و الفارغة. queryset = Model.objects.filter(field__isnull=True) أما الأولى فأنت قمت بتحديد قيم None يدوياً فعملها هو البحث عن (field=None) فقط وليس الفارغة1 نقطة
-
الفرق الوحيد بين كل واحد منهم هو الصلاحيات فصلاحية superuser هي الأعلى فيمكنه التحكم بكل صلاحيات المستخدمين الأخرين من إضافة مستخدمين او احذفهم و التعديل على كل البيانات في النظام . أما staff فيمكنه التعديل على البيانات أو الوصول لبعض البيانات أو الجداول حسب الصلاحيات المعطية له من قبل superuser. عند إستخداتم أمر createuperuser فأنت تقوم بإنشاء صاحب النظام و الذي يمكنه التحكم بكل شيء موجود في admin control Panel.1 نقطة
-
الترجمة من أمتع المهن التي مارستها والتي أهواها وأحبها كيف وهي فرع من فروع العلم والمعرفة وبها تُنقَل العلوم وتُدَوال بين الناس وتُكسر حواجز اللغة الشائكة، ولست هنا بصدد الحديث عن الترجمة وتعريفها بل سأتحدث عن أدوات ترجمة معينة تساعد المترجم في عمله وترفع من إنتاجيته وتزيد من جودة ترجمته، وأفترض أن قارئ المقال هو مترجم سواءً كان مبتدئًا أو متمرسًا. كما يملك أي صاحب مهنة حرفية أدواته الخاصة التي تساعده في عمله -مثل معدات الحلاقة للحلاق- فإن للمترجم أيضًا أدوات ترجمة خاصة به التي تساعده في عمله في الترجمة، فسأبدأ بأدوات التحرير الركيزة الأساسية لكل مترجم ثم أنتقل بعدها إلى أدوات أساسية مثل أدوات اللغة والتحويل ثم سأختم بأدوات متقدمة للمترجم وهي أدوات الترجمة بمساعدة الحاسوب CAT tools. أدوات التحرير لم يعد المترجم يستخدم الورقة والقلم لترجمة النصوص والمحتوى (رغم وجود قلة من المترجمين يستمتعون بذلك) وأصبح العمل معتمدًا كليًا على الحاسوب ومحرراته النصية لما توفره من سهولة في العمل وسرعة في الكتابة إذ لا ننسى أن صياغة المحتوى النصي الإلكتروني أصبحت الأساس. أول ما يُذكر المحرر النصي، نذكر أشهر محرر نصي ألا وهو مايكروسوفت وورد، ولكنه برمجية تجارية تحتاج إلى اشتراك بها فتتجه أنظارنا إلى المحررات النصية المجانية والحرة والتي أشهرها ليبرأوفيس رايتر LibreOffice Writer والتي تفي بالغرض وزيادة وتغنينا عن المحرر غير المجاني رغم أنك قد لا تجد واجهة عربية كاملة فيها (يمكن المساهمة بترجمة الواجهة إن أحببت)، فأنا شخصيًا استعمل ليبرأوفيس منذ أكثر من خمس سنوات واستفدت منه بشدة في ترجمة المقالات والكتب وتحرير النصوص. قد يكفيك محرر نصي بسيط جدًا بعيدًا عن المحررات المتقدمة الشبيهة بمحرر وورد أو رايتر وهنا أذكر محرر كايت Kate النصي الشهير أو المحرر Notepad++ الحر والمفتوح المصدر فهي توفر لك مجالًا تكتب فيه النصوص ببساطة بعيدًا عن أي تعقيد آخر، وقد علمت بعض المترجمين المتمرسين الذين يعتمدون على مثل هذه المحررات في الترجمة، وهنا أشير إلى أن الأداة لا تتجاوز عن كونها أداة ويتعلق الأمر كله بمن يستخدم الأداة، وأضرب مثلًا بالحلاق الماهر الذي إن أعطيته أي أداة قص فسيعطيك نتيجة جيدة بينما لن تحصل على مثل تلك النتيجة بأفضل أدوات الحلاقة من حلاق مبتدئ غير متمرس، لذا لا تغتر بالأداة. قد لا نكتفي بأدوات تحرير النصوص تلك ونضطر إلى الكتابة بصيغ أخرى مثل صيغة ماركداون أو صيغة لاتيك LaTex أو صيغة ميدياويكي MediaWiki (المعتمدة في ويكيبيديا) وهنا إما أن نتعلم استعمال تلك الصيغ ونكتب فيها مباشرة باستعمال محررات النصوص السابقة أو نعتمد على محررات مخصصة تساعدنا في الكتابة بتلك الصيغ مثل محرر تايبورا Typora الذي يُصدِّر إلى الكثير من الصيغ من ضمنها ما ذكر آنفًا، وقد استعملته بكثرة في عمليات التحويل خصوصًا التحويل بين أنواع المحررات النصية مثل التحويل من صيغة مايكروسوفت وورد إلى ليبرأوفيس رايتر وأيضًا التحويل إلى صيغة مارك داون بنسخ النص فيه ليولد لي شيفرة مارك داون. كل ما سبق كان تطبيقات سطح مكتب تعمل محليًا على الحاسوب دون وجود اتصال بالإنترنت، ولن أنسى ذكر تطبيقات الويب التي تعمل في وضع الاتصال بالإنترنت، إذ تتطلب هذا النوع من المحررات اتصالًا مستقرًا بالإنترنت (رغم أنها تعمل في وضع عدم الاتصال مع بعض الإضافات أو التثبيتات المحلية)، وأشهر هذه المحررات محرر مستندات غوغل أو دوكس Docs من غوغل درايف (الذي أكتب المقالة عبره الآن) وأيضًا تجد حزمة مايكروسوفت أوفيس عبر الإنترنت -تدعى أوفيس 365- ولكنها أقل كفاءة من غوغل درايف بناءً على تجربتي لها إذ تتطلب اتصالًا جيدًا بالإنترنت ولكن من يدري ربما تتحسن بالتدريج، فتطبيقات الويب سريعة التطور والتحسن. توفر أيضًا منصة أنا Ana تطبيق ملاحظات فيه محرر نصي جيد يمكن كتابة النصوص وتحريرها ومشاركتها أيضًا مع مستخدمين آخرين، وما يميز محررات الويب النصية عن غيرها أنها توفر خيار المشاركة والتحرير المشترك وإضافة الملاحظات ومناقشتها وغيرها من الميزات، الأمر الذي يساعد فرق العمل أيما مساعدة خصوصًا فرق العمل التي تعمل عن بعد فهي تعد الخيار الأمثل لهم. هنالك الكثير من المحررات النصية التي تكون إما تطبيقات مكتبية أو تطبيقات ويب غير التي ذكرتها ولكن ما ذكرته هو المناسب للغة العربية وما جربته بنفسي ومن يدري فقد تظهر أدوات أخرى غيرها، ولكن تبقى أدوات ويكون التركيز على التحرير هو الأساس مهما اختلفت الأداة وتبدلت. أدوات التحويل يتعامل المترجم مع مختلف العملاء وسيتعرض إلى متطلبات مختلفة، فهنالك عملاء يشترطون على المترجم تسليم العمل بصيغة محددة مثل أن تكون بصيغة وورد .docs أو بصيغة أوبن أوفيس مثل .odt أو بصيغة كتاب إلكتروني .pdf وقد تجد البعض يطلب صيغًا أخرى مثل تسليم العمل بصيغة مارك داون .md أو ميديا ويكي .wiki أو حتى بصيغة HTML فهل تضيع وقتك في تعلم كل تلك الصيغ؟ بالطبع لا، يلجأ المترجم في مثل هذه الحالة إلى الاعتماد على الكتابة بمحررات وصيغ يعرفها ثم يعتمد على أداة تحويل تحوِّل الملف إلى الصيغة المطلوبة. تعاملت مع مثل تلك الحالات بكثرة وأشهر ما طُلِب مني تسليم العمل بصيغة مارك داون وبصيغة HTML وبصيغة ميدياويكي واعتمدت في أغلب الحالات على محرر تايبورا Typora (استعمله مع قالب Middle East العربي) الذي يوفر خيارات تصدير كثيرة منها ما ذكرته للتو وصيغ أخرى لم أتطرق لها حتى، واعتمدت بكثرة أيضًا على أدوات تحويل ويب بسيطة مثل موقع دوِّن أو موقع markdowntohtml.com أو stackedit.io التي تتشارك في تحويل النص بسهولة وسرعة من صيغة مارك داون إلى HTML أو pdf أو بالعكس مثل التحويل من HTML إلى ماركداون. ستتطرق -أثناء العمل- إلى أدوات تحويل أخرى لتحويل الوسائط المرئية المختلفة مثل الصور والفيديوهات والصوتيات إلى صيغ مناسبة لما يطلبه العميل، فمثلًا كنت أحول فيديوهات قصيرة في بعض المقالات إلى صور متحركة gif وفق ما كان يطلبه العميل وأيضًا كنت أحرص على ضغط الصور وتحسينها عبر أدوات مثل tinypng.com حتى يكون المقال الذي أترجمه مناسبًا من ناحية السيو SEO وهو ما كان يعجب العميل بشدة. أهم ما في الأمر في هذه الأدوات من أدوات الترجمة هو إبداء المرونة مع العميل فقد يطلب العميل تسليم الملفات بصيغة لا تعرفها وهنا لا تمتعض أو تقول أنا لا أعرف هذه الصيغة ولم أسمع بها ولكن حاول إيجاد حلول سريعة ومناسبة وتحلى بالمرونة وأبدِ تجاوبًا مع العميل وتعلم ما ينقصك وابحث واسأل حتى تسلمه العمل وفق ما يطلب ويرضيه. أدوات اللغة والتدقيق إتقان العمل واجب على كل عامل مخلصٍ ومتفانٍ في عمله، فليس من الاحتراف أن يسلم المترجم العمل ناقصًا مثل أن يكون فيه أخطاء لغوية أو إملائية، فاحرص كل الحرص على تفادي مثل هذه الحالات وعلى مراجعة النص قبل تسليمه للعميل عدة مرات، إذ أوصي بمراجعة المقال بعد ترجمته ثلاثة مرات على الأقل تكون الأخيرة بعد فاصل زمني يفصلك عن ترجمة المقال، لأنك أثناء ترجمة المقال تكون قد خزَّنت ما ترجمت في ذاكرتك أولًا فإنْ راجعتَه بعد ترجمته مباشرةً، فستعتمد لاشك على القراءة من الذاكرة، وهنا تكمن فائدة المراجعة بعد فترة من الزمن بذاكرة جديدة وعين حاذقة تلتقط أخطاء لم تكن انتبهت لها بل وحتى أكثر من ذلك، إذ قد تجد جملًا ركيكةَ الصياغة أو مبهمة المعنى لم تراها فتصححها لأنك عزيزي المترجم تقرأ بعين قارئ عادي وكأنه مقال جديد وليس المقال نفسه الذي ترجمته أنت! ذلك أفضل أداة يدوية عن المراجعة، والتي تتطلب كما أشرت امتلاك مهارة لغوية كبيرة ولكن قد تتساءل، ماذا لو لم أمتلك تلك المهارة؟ ماذا لو لم أكن ماهرًا في كتابة الهمزات كتابةً صحيحة، فماذا أفعل آنذاك؟ أقول، عليك أن تتعلم وتصقل مهارات اللغوية أولًا حتى تتمكن من كتابة نص عربي خالٍ من الأخطاء، وإلى وقتها، أنصح بالاستعانة بأدوات التدقيق اللغوي التي هي جزء مهم من أدوات الترجمة. أولى تلك الأدوات هي الأدوات المدمجة في المحررات النصية نفسها فتوفر معظم (أو حتى كل المحررات دون مبالغة) مدققات لغوية لمختلف اللغات وهنا أنصح بضبط اللغة ببداية عملك إلى اللغة العربية لتفعيل المدقق اللغوي المدمج الذي يعطيك إشارة بالأخطاء المرتكبة ويوفر لك مقترحات لحلها وتفي هذه المدققات المدمجة بحل نسبة كبيرة من الأخطاء خصوصًا الإملائية منها، فأعتمد كما ذكرت على محرر دوكس من درايف الذي فيه مدقق آلي يدقق الأخطاء اللغوية وهو جيد صراحةً أما بالنسبة لمحرر رايتر من ليبر أوفيس الذي استعمله، فهنالك مدقق لغوي مدمج بالإضافة إلى تثبيت حزمة داعمة له للغة العربية ضمن الإضافات Extension اسمها آية سبل AyaSpell والتي تساعدني بكثرة على التقاط الأخطاء وتصحيحها. تعاملت مع عدة مترجمين وأتعجب صراحة ممن يُسلِّم العمل متجاهلًا التحذيرات التي يطلقها المدقق اللغوي الآلي المدمج فكيف مرَّ على هذه التحذيرات دون أن يضغط عليها ويختار المقترح المشار إليه (الذي يكون صحيحًا في أغلب الأحيان) ويصححها؟ هذا وقد سلم العمل دون مراجعة حتى فالعجب كل العجب! قد تضطر أحيانًا إلى الاستعانة بمدققات لغوية خارجية لتدقق النص والتأكد من خلوه التام من الأخطاء ومن الأمثلة على تلك الأدوات أداة المدقق اﻵلي من صخر والمدقق اللغوي من اكتب صح وغلطاوي وغيرها فابحث عنها تجدها. هنالك عملاء تطلب تسليم العمل مشكلًا بعلامات التشكيل وإضافة هذه العلامات يتطلب وقتًا مضاعفًا فماذا نفعل؟ هل نصرف هذا الوقت الذي هو رأس مال المترجم؟ لا، بل أنصح بالاستعانة بأدوات تشكل النص مثل أداة المُشكِّل من صخر ومشكال وغيرهما، أو ربما العكس فقد يطلب العميل تسليم العمل دون أي تشكيل ولا حتى الشدة أو التنوين اللذان اعتادت يدك على إضافتهما للنص أثناء الترجمة فهل تسلمه عملًا ناقصًا فيه علامات تشكيل أم تصرف وقتًا إضافيًا في مطاردة علامات التشكيل هنا وهناك والتي غالبًا ما ستهرب منك واحدة على الأقل وتبقى في النص ليراها العميل أول ما يطلع على النص ويعنفك آنذاك؟ لا، بل نزيلها باستعمال عملية البحث والاستبدال بالبحث عن كل علامات التشكيل بالاستعمال بالتعابير النمطية Regular Expression (قد تجدها باسم أحرف البدل في المحررات النصية) أو نعتمد على أدوات تزيل علامات التشكيل من النص كاملًا وقد استعملت مرةً إحداها على ما أذكر وكانت أداة ويب باسم خَفِّف فابحث عنها تجدها وتجد غيرها الكثير. أخيرًا وليس آخرًا، لابد للمترجم من الاستعانة بقواميس لغوية تعينه أثناء الترجمة وتمده بالمفردات والمصطلحات وأي اقتراحات، أذكر من أدوات القواميس الإلكترونية قاموس المعاني وقاموس صخر والرديف والراموز الوسيط وغيرها، فأكثر القواميس التي أفادتني قاموس المعاني ففيه قاموس إنجليزي-عربي وقاموس عربي-عربي وفيه خيارات لتصنيف المصطلحات بحسب القسم (مثل تقني أو طبي أو أدبي ...إلخ.) يليه قاموس صخر، ويمكنك بلا شك الاعتماد على القواميس الورقية التي لم يُكتب لها التحول التقني بعد وهي كثيرة لا تحصى. خلاصة القول لهذا القسم، اصقُل مهاراتك اللغوية واستفد من الأدوات والقواميس التي تسد لك النقص وتوفر عليك الوقت فهذا هو الغرض من أدوات الترجمة. أدوات المشاركة ستُسلِّم العميل بعد الانتهاء من الترجمة العمل كاملًا ولكن قد يطلب أن تشاركه العمل ليطلع عليه كل حين أو قد يطلب أن يراجعه هو بنفسه أو قد يتطلب العمل تدخلٌ من محرر أو مدقق لغوي يعمل على النص المترجم بعد الانتهاء من ترجمته وهنا لابد الإشارة إلى قسم مهم من أدوات الترجمة وهي أدوات المشاركة التي تعين في مثل هذه الحالات. لا يخفى على أي مطلع على المجال التقني شيوع فكرة التخزين السحابي والعمل على تطبيقات الويب، فقد يكفي بمجرد وصولك إلى متصفح الويب الحصول على كل الخدمات والتطبيقات عبره (وهو ما يتأكد لنا يومًا بعد يوم)، فقد أحدث محرر دوكس Docs من درايف وما يشابهه ثورة في مجال المحررات النصية فقد أصبحت متاحة عبر متصفح الويب ويمكنك خلالها مشاركة الملف النصي مع أي شخص والعمل عليه وإضافة ملاحظات وتعديلات في آنٍ واحد الأمر الذي لم نكن نتخيله قبل بضع سنوات، ذلك بعد أن كنا نرسل الملف النصي عبر البريد لمن يود أن يراجعه ويضيف عليه ملاحظات ثم يعيد بعد ذلك إرساله لنا لنطبق الملاحظات أو التعديلات وهكذا، انظر مثلًا مقال كيفية المشاركة في كتابة وتعديل مستند باستعمال مستندات جوجل. أضف إلى ذلك أن المحررات النصية اليوم باتت تحوي نافذة تعرض سجل التعديلات والتحديثات على الملف ومن أجرى تلك التعديلات وربما نجد ميزات أخرى عليها لاحقًا من يدري. العمل على محرر نصي في وضع الإتصال يتطلب تخزين الملف في مخزن سحابي عن بعد وهي الخدمة التي توفرها منصة درايف Drive ودروبوكس Dropbox ووندرايف OneDrive وغيرها حتى منصة أنا Ana توفر خدمة التخزين السحابي أيضًا، لذا هي فرصة لمشاركة العمل والملفات مباشرةً مع العميل أو أفراد الفريق سواءً عملنا في وضع الاتصال أو عدم الاتصال (برفع الملفات إلى مجلد مشترك) وهنا عليك أن تكون جاهزًا ومتقنًا لاستخدام تلك المنصات وعدم التعرض لها يعني أنك تعيش في واقع منفصل منعزل خارج هذا الكوكب. فاحرص أثناء العمل الحر عن بعد على مشاريع ترجمة مثل العمل على منصة مستقل أو خمسات على توثيق العمل على المنصة نفسها وعدم تسليم العمل أو أي جزء منه خارجها الأمر الذي يضمن لك حقك، فقد تشارك العميل الملفات عن قصد أو غير قصد فيأخذها ولا يعطيك حقك، فإن سلمت العميل على مجلد مشارك، احرص على رفعه على منصة العمل وتوثيقه أيضًا، واستعن بفريق الدعم الفني إن حصل أي إشكال، فالحذر الحذر! أدوات التنظيم وإدارة المهام ستُمضي، بوصفك مترجمًا، أغلب أوقاتك بين أروقة محررات النصوص وتألف أصابعك ملمس أزرار لوحة المفاتيح لذا أرى أن توليها بالغ الاهتمام كما أشرت في الأعلى، ولا تضع وقتك في اختيار أدوات لتنظيم عملك ومهامك، فقد تكفيك ورقة عمل spreadsheet من إحدى تطبيقات أوراق العمل مثل إكسل من مايكروسوفت أو كالك من ليبرأوفيس أو جداول البيانات من غوغل تضع فيها روابط أو مهام للعمل عليها مع إشارة لعدد الكلمات أو الصفحات وعدد الصفحات المنتهية ونسبة الإنجاز (معادلة بسيطة تكتبها) وبذلك يمكنك متابعة سير العمل باستمرار وترتيب مهامك وأولوياتك. انظر مثلًا الخطة التالي لترجمة فصول كتاب مع نسبة إنجاز كل فصل منها على جداول بيانات غوغل: أضف إلى ذلك الأدوات البسيطة والسهلة لإدارة المهام وترتيب الأولويات مثل القلم والورقة أو لوحة مهام تضيفها على منصة أنا أو غيرها من المنصات والأدوات والمهم في اختيارك البساطة والبعد عن التعقيد والأدوات الأجنبية التي لا تدعم اللغة العربية. ربما تساعدك أدوات الترجمة بمساعدة الحاسوب على إدارة مهام الترجمة ومتابعة نسبة الإنجاز وهو ما سنتحدث عنه في القسم التالي والأخير. أدوات الترجمة بمساعدة الحاسوب CAT تعد هذه اﻷدوات اﻷشهر لمساعدة المترجمين في عملهم وهي أول ما يتبادر إلى ذهن المترجم عند ذكر وجود أدوات ترجمة مساعدة لعمل المترجمين، وهي باختصار محررات نصية ذكية مخصصة للمترجمين ومدعمة بأدوات ترجمة تساعدهم على ترجمة النصوص بكفاءة وسرعة مع تحسين الجودة تلقائيًا. آثرت ذكر هذه الأدوات المتكاملة لعمل المترجم للنهاية إذ أرى أن على المترجم أن يتقن أولًا الترجمة دون الاعتماد على أي أداة ثم بعدها يستعمل أدوات الترجمة التي تناسبه، فلا يمكن أن نقول أن هذه الأداة أو تلك تصلح لكل المترجمين، بل نعرض الأدوات ونترك المترجم ينتقي ما يناسبه وما يساعده في العمل. أشرت أن أدوات الترجمة بمساعدة الحاسوب هي كما يشير اسمها فهي توفر للمترجم محررًا ذكيًا مقسومًا (في أغلبها) إلى قسمين بجوار بعضها بعضًا يعرض القسم الأول (على اليسار إن كانت لغة من اليسار إلى اليمين مثل الإنجليزية) النص المراد ترجمته والثاني هو للغة التي تريد الترجمة إليها ولتكن العربية مثلًا، كما أن أغلب هذه الأدوات تُحلِّل الملف الذي تريد ترجمته وتَقسمِه إلى أقسام صغيرة للعمل عليها، كما تحلل هذه الأقسام التي تكون عادة جملًا أو فقرات وتكشف الجمل المتماثلة أو المتهابشة وترصد المصطلحات فإن ترجمت مصطلحًا أو جملةً، عملت الأدوات على تذكر هذه الترجمة واقتراحها عليك لاحقًا مما يسرع العمل ويوحد الترجمة خصوصًا ترجمة المصطلحات، كما أنها تحاول تحليل تنسيق النص الأجنبي وتعكسه على النص العربي بعد ترجمته دون تدخل منك مما يزيل عنك عبئ تنسيق النص. الصورة من مقال كيفية ترجمة المحتوى بالاستعانة ببرنامج ترادوس Trados للكاتبة يسرى زكي وفيه تشرح كيفية استعمال تطبيق ترادوس لترجمة المحتوى فمن أهم الميزات التي توفرها هذه الأدوات هي قاعدة مصطلحات وذاكرة الترجمة، إذ تخزن ترجمة مصطلح ما كما أشرت في قاعدة مصطلحات لتذكره لاحقًا، كما تخزن أيضًا ترجمة جمل قصيرة في ذاكرة الترجمة لترشيحها لاحقًا، وهذه أهم ما يميز هذه الأدوات، فليس من الجيد أن تترجم مصطلحًا ترجمات مختلفة في المقال نفسه ولا حتى في مجموعة مقالات سلمك إياها العميل فترجمتك يجب أن تكون متناسقة وبروح واحدة. إن أردت الاطلاع على هذه الأدوات بالتفصيل، فأنصحك بالرجوع إلى مقال لماذا ينبغي عليك استخدام برامج الترجمة بمساعدة الحاسوب CAT tools ومقال أدوات الترجمة بمعونة الحاسوب CAT tools: بوابة الترجمة العصرية لأخذ فكرة أعمق عن أدوات الترجمة بمساعدة الحاسوب والتطبيقات والمحررات المتوافرة، كما أنصحك بالنظر في قسم الترجمة بمساعدة الحاسوب ففيه مقالات كثيرة ومفيدة تعينك على التعرف على هذه الأدوات وكيفية استعمالها. خاتمة ستجدني في ختام المقال لم أركز على أسماء أدوات الترجمة مثلما صببت تركيزي على الغرض من الأدوات واستعمالها، فقد تظن من اسم المقال أنك ستحصل على وصفة أدوات ترجمة جاهزة تستعملها ولكن آثرت ذكر أسماء الأدوات كأمثلة فقط بينما لم أذكر أدوات ترجمة أخرى وتركت الباب مفتوحًا لك للبحث والتمحيص، فقد تتبدل أدوات الترجمة عبر الزمن ولكن يبقى الاستعمال العام موجودًا فأداة المقص هي أداة قص -كما في مثال الحلاق- بغض النظر عن طرازها أو شكلها أو الشركة المصنعة لها. أدوات المترجم جزءٌ لا يتجزأ من عمله وهي سلاح المترجم الذي يعينه على ترجمة النصوص وإخراجها بأفضل ما يكون ليكسب رضا العميل تاركًا بصمته على النص المترجم، لذا احرص أيها المترجم على تعلم استعمال هذه الأدوات وغيرها والاطلاع على أحدث الأدوات والوسائل التي يستعملها زملاؤك المترجمين، فأرجوا أن أكون قد شملت أوسع نطاق للأدوات التي يستعملها المترجم، وإن كنت تستعمل أدوات ترجمة لم أذكرها، فشاركنا إياها بالتعليقات. اقرأ أيضًا استعمال أداة QA Distiller لفحص جودة الترجمة وتحسينها أشهر أدوات الترجمة بمساعدة الحاسوب CAT Tools أدوات الترجمة بمعونة الحاسوب CAT tools: بوابة الترجمة العصرية1 نقطة