اذهب إلى المحتوى

هشام رزق الله

الأعضاء
  • المساهمات

    1442
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    31

كل منشورات العضو هشام رزق الله

  1. يمكنك استخدام Media query، وهي تقنية جديدة ظهرت في CSS3 لتنفيذ خصائص وتنسيقات معينة حسب أبعاد الشاشة، وهذا مثال بسيط على هذه التقنية حيث سيتم تلوين خلفية الشاشة بلون أزرق فاتح إذا كان حجم الشاشة أقل من 500 بيكسل: @media only screen and (max-width: 500px) { body { background-color: lightblue; } } للمزيد من الأمثلة والشرح على هذه التقنية أنصحك بالإطلاع على هذا الدرس. إذا لم ترغب بعمل ذلك بشكل يدوي فيمكنك استخدام اطار بوتسترات الذي سيسهل عليك هذا الأمر كثيرا، حيث سيحدد خصائص الصفحة وMedia query بشكل تلقائي.
  2. إن تقديم الخصومات والمنتجات/الخدمات المجانية للعملاء المحتملين هي وسيلة فعالة لزيادة الاهتمام فيك وفي أعمالك. وسيزداد الإهتمام بشكل كبير بعرضك، عندما تتيحه لمدة محدودة فقط، والتفسير النفسي لهذا هو أن ندرة شيء ما مهما كان (طعام، موارد أو حتى عرض مثير…) سيدفعنا للتّصرف بسرعة للحصول عليه قبل فوات الأوان. في درسنا اليوم سنتعلم كيف يمكننا الاستفادة من هذا المفهوم باستخدام ملحقي Social Marketing و Scheduled Content وسننشئ عرضًا لمدة محدودة لتشجيع المستخدمين للإعجاب بحساباتنا على شبكات التواصل الاجتماعي ومن ثم العودة للوصول إلى الخصم الخاص. لنبدأ! Social Marketing و Scheduled Content ستتمكن من لفت الأنظار حول ما تقدّمه من مُنتجات باستخدام ملحق Social Marketing من خلال تقديم حوافز للمستخدمين الذين ينشرون منتجاتك أو خدماتك على شبكات التواصل الإجتماعي الكبرى مثل فيسبوك وتويتر و جوجل+ وغيرها. يعمل هذا الملحق على عرض إعلان مباشرة في موقعك عن طريق عرض نافذة منبثقة تظهر بها روابط المشاركة على شبكات التواصل الاجتماعي، وعندما يشارك أحد الزوار عرضك، يتم الكشف عن العرض مع رسالة. يمكنك دمج الإعلانات بسهولة مع مشاركاتك وصفحاتك باستخدام الأكواد القصيرة (shortcodes)، ويمكنك أيضا تخصيصها بسهولة بالاعتماد على الكثير من الخيارات التي تختارها عند إنشائك لإعلانك. أما بالنسبة لـ Schedule Selected Content فسيسمح لك بجدولة المحتويات لإظهارها على موقعك في أي وقت تريده في المستقبل. ستتمكن باستخدام هذين الملحقين من إنشاء وجدولة عروض محدودة الوقت للشبكات الاجتماعية. في هذا الدرس، سأنشئ عرضًا لشركتي المتخصصة في تصميم الويب لأريك كيف يمكنك إعداد هذه الملحقات. سأنشئ عرضًا يمنح قسيمة (coupon) مجانية للحصول على مُلحق تجاري بالإضافة إلى دعم مجاني لمدة شهر مع تخفيض 50% على أسعار القوالب، وهذا العرض سيبقى لمدة 24 ساعة وسينتهي عند منتصف الليل. البداية ثبت وفعّل أولا ملحقي Schedule Selected Content و Social Marketing. إعداد Social Marketing عند تفعيل ملحق Social Marketing، ستُوجّه إلى صفحة إعداداته، ويمكنك إنشاء إعلانك الأول بثلاثة خطوات فقط: إعداد الخيارات: سنتحكّم هنا في الإعدادات الأساسية للإعلان مثل خيارات المظهر والتحميل… إنشاء إعلانك: سيظهر هنا شكل إعلانك بعد إضافة المحتويات والتفاصيل. إضافة إعلانك: سيتم توفير كود قصير سيمكنك من إضافة إعلانك في أي مكان في موقعك. انقر على زر Configure your settings لإعداد الخيارات حسب تفضيلاتك. يمكنك إما اختيار إحدى القوالب الجاهزة أو استخدام أنماط (stylesheet) موقعك الحالي لإنشاء إعلانك. أود أن أذكر أن خيار "lazy dependency loading" سيحمّل -عند تفعيله- عناصر إعلانك حسب الحاجة وذلك لتقليص وقت تحميل موقعك. عند انتهاءك من الخيارات، انقر على زر Save Changes and go back to Tutorial في أسفل الصفحة. إنشاء الإعلان بعد ذلك انقر على زر Create Advert في صفحة Getting Started، ستلاحظ وجود محرر WYSIWYG والذي يشبه كثيرا محرر التدوينات والصفحات باستثناء أنه توجد بعض الخيارات الإضافية أسفل المحرر. أدخل عنوان ومحتويات إعلانك، كِلا الحقلين سيظهران في الواجهة الأمامية (front end)، وبعد ذلك أدخل الخيارات التي ترغب بها لكن قبل أن تنقر على Publish، قد ترغب في إضافة و جدولة إعلانك أوّلًا. إظهار عرضك محدود الوقت أنشئ مشاركة أو صفحة جديدة أو حتى افتح واحدة قمت بإنشائها سابقا تريد إظهار عرضك فيها (يمكنك أيضا إظهار إعلانك في نافذة منبثقة باستخدام ملحق PopUp Pro). بعد ذلك حدد المكان التي تريد عرض إعلانك بها وانقر على Insert Social Ad بجانب زر Add Media في أعلى المحرر. ستظهر لك نافذة منبثقة حيث يمكنك اختيار المحاذاة وبعدها ستجد زر Insert Social Ad والذي يسمح لك بعرض الإعلان الذي تريده. عند الضغط على رابط Advanced ستظهر لك خيارات إضافية حيث يمكنك إضافة أصناف CSS لاستخدامها في ملف styles.css. سيظهر لك كود قصير shortcode في المحرر. حان الآن وقت جدولة عرضك. جدولة عرضك لمدة محدودة حدد الكود قصير shortcode، وستجد زرًا في أسفل المحرر المرئي لجدولة إعلانك بجانب أيقونة Toggle Toolbar. أنقر عليه. ستظهر لك نافذة منبثقة تسمح لك بكتابة التواريخ المطلوبة وعدد مرات تشغيل عرضك المحدود. بمجرد أن تنتهي من اختياراتك، انقر على زر Insert في أسفل الجانب الأيمن من النافذة المنبثقة، وبعد ذلك انقر على Update أو Publish لإظهار إعلانك للجميع. الخاتمة تملك الآن الأدوات اللازمة لإضافة عرضك لمدة محدودة إلى موقعك، وإذا واجهت بعض المشاكل، يمكنك التحقق من التوثيق الموجود في علامة التبويب Usage في صفحات ملحقي Social Marketing و Schedule Selected Content. ترجمة -وبتصرف- للمقال: Creating a Limited Time Offer on Your Site with Social Marketing and Scheduled Content لصاحبته Jenni McKinnon.
  3. توجد عدّة مشاريع لدعم اللغة العريبة لمشروع بوتستراب من أشهرها هذا المشروع، لكن بالنسبة لي وللكثير من المبرمجين، فأنا أفضل أن أعدّل بنفسي على الموقع لجعله يدعم العربية مثلا عن طريق وضع هذا السطر: <html lang="ar"> واستخدام خط درويد نسخ للموقع: <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/droid-arabic-naskh" type="text/css"/> ومن ثم اجعل اتجاه النص من اليمين لليسار و أعدل على تنسيق CSS لجعله يستخدم الخط السابق: body { font-family: 'DroidArabicNaskhRegular'; font-weight: normal; font-style: normal; direction: rtl; } هذه بعض الأشياء البسيطة التي أقوم بها لدعم اللغة العربية في مشروع بوتستراب.
  4. لديك حلّين لعمل نسخة احتياطية من خادومك، فإما أن تقوم بذلك بشكل يدوي وتحزّم جميع الأدوات والملفات والإعدادات بنفسك، أو يمكنك استخدام احدى الأدوات التي تُسهّل عليك عملية إنشاء نسخة احتياطية. يوجد نوعين من الأدوات، الأولى شهيرة واحترافية وسيكلفك هذا مبالغ طائلة، أو يمكنك استخدام أدوات أبسط من الأولى ومجانية مثل rdiff-backup أو unison ... كما يمكنك استخدام سكربتات جاهزة لنسخ أجزاء معينة، مثلا لقواعد البيانات يمكنك استخدام هذا السكربت لـ MySQL. تأكّد فقط من عمل نسخة احتياطية من هذه المجلدات: etc /home /opt /root /srv /var
  5. إذا بدا لك يونتي صعب ومعقّد فأنصحك بتجربة محرك Construct 2 فهو سهل للغاية ولا يحتاج إلى خبرة برمجية كبيرة، ويمكنك برمجة الألعاب من خلال وضع الصور والضغط على الأزرار لإجراء الأحداث المتعلقة باللاعب بسهولة. من المحركات الأخرى السهلة GameMaker: Studio والذي يعد من أشهر محركات الألعاب للمبتدئين، وستجد على الإنترنت العديد من المقالات والدروس التعليمية عنه. من المحركات الأخرى الشهيرة أيضا، محرك Cocos2d المفتوح المصدر والذي يُمكنك من البرمجة باستخدام لغات بايثون وسي بلس بلس وغيرها.
  6. توجد عدة طرق لفعل ذلك، فيمكنك على سبيل المثال استخدام هذه الأداة للربط، أو إذا كان لديك دعم Postgre على نظامك يمكنك استخدام أداة الاستدعاء والتصدير (import/export wizard) في خادوم SQL لنقل البيانات والذي سيسألك عدة أسئلة حول قاعدة البيانات قبل أن يبدأ بالنقل. إذا لم تعمل لك الطرق السابقة فتوجد طرق أخرى أكثر تعقيد، يمكنك الإطلاع على هذا الموضوع أو هذا للمزيد من المعلومات والطرق.
  7. لم توضّح سؤالك جيدا، هل تبحث عن برامج لتعرض الفيديو على أنظمة لينكس؟ فإذا كان هذا ما تبحث عنه فتوجد خيارات كثيرة، فيمكنك على سبيل المثال استخدام برامج VLC، Mplayer, SMPlayer وغيرها... أما إذا كنت تبحث على برامج بسيطة لتعديل الفيديوات على أنظمة لينكس فيمكنك استخدام Open Shot أو Pitivi أو حتى Avidemux.
  8. تُستخدم فيها لغات HTML وفي بعض الأحيان CSS للتزيين، بالإضافة إلى لغة جافا سكربت أو jQuery للتعامل مع المشاركة والمتابعة، في بعض الأحيان الأخرى تستخدم هذه اللغات الأخيرة دون HTML وCSS. لكل موقع تواصل اجتماعي لديه طريقته الخاصة في الارسال، أنصحك بقراءة التوثيق الرسمي للمطورين لهذه المواقع لتعرف ما المكتبات والدوال والمعاملات التي يجب عليك استخدامها لوضع أزرار المتابعة والمشاركة وغيرها من الأمور الأخرى.
  9. أعتقد أن هذه هي الطريقة التي تبحث عنها: هذا مثال لبرنامج يرسل ملف music.mp3 عن طريق "التدفق" (streaming) من القرص، وهذه الطريقة تتميز بأنها لا تقرأ كامل الملف في الذاكرة قبل ارسال الملف)، وفي هذا المثال سيكون استماع الخادوم على المنفذ 2000: var http = require('http'), fileSystem = require('fs'), path = require('path'); http.createServer(function(request, response) { var filePath = path.join(__dirname, 'music.mp3'); var stat = fileSystem.statSync(filePath); response.writeHead(200, { 'Content-Type': 'audio/mpeg', 'Content-Length': stat.size }); var readStream = fileSystem.createReadStream(filePath); // We replaced all the event handlers with a simple call to readStream.pipe() readStream.pipe(response); }) .listen(2000); بالمناسبة توجد طريق أقصر باستخدام Express. المصدر
  10. إذا أردت عرض تطبيق ويب (أو صفحة ويب) كجزء من تطبيق أندرويد الخاص بك فيمكنك استخدام WebView، فهذا الصنف هو امتداد لصنف View في أندرويد والذي يسمح لك بعرض صفحات ويب كجزء من activity layout، وعلى الرغم من ذلك فإن هذا الصنف لا يتضمن أية مميزات أخرى مثل أزرار التصفح ورابط الموقع وغيرها، فكل ما يفعله WebView هو عرض صفحة ويب. للمزيد من المعلومات حول هذا الصنف أنصحك بالإطلاع على التوثيق الرسمي، فشرحه طويل نوعا ما.
  11. يبدو أن فيديوهاتك قد فسدت، فحسب ما أرى أن حجمها أصبح 0.00 B، قد يكون سبب المشكلة تطبيق معين أو أنك استخرجت بطاقة الذاكرة مباشرة وهي تعمل على هاتفك مما أدّى إلى فساد البيانات الموجود داخلها. حاول نسخ/نقل فيديوهاتك على جهاز حاسوبك وحاول تغيير الأسماء ووضع الامتداد المناسب وستعرف هل تعمل الفيديوهات أم أنها قد فسدت. قد يكون سبب الفساد أيضا هي فيروس ما أيضًا.
  12. أسباب رسائل الخطأ هذه متنوعة، فهل تطبيقك جديد؟ قد يكون السبب هي مشاكل وأخطاء عند برمجة وتطوير التطبيق وقد تكون هنالك مشاكل في طريقة استقبال التطبيق للرسائل والمعلومات، فهل قمت بتغييرات في استضافتك؟ أو حتى في قاعدة بياناتك مؤخرا؟ احتمال ثغرة SQL Injection وارد أيضًا، فربما هنالك من يحاول اختراق قاعدة بياناتك لذلك أبقي بيانات قاعدة بيانات محمية بتشفيرها. أحتاج إلى المزيد من المعلومات حول تطبيقك لأعرف سبب المشكلة بالضبط؟
  13. بما أنها مصفوفة، فيمكنك استخدام حلقة for each فلو فرضنا أنك تملك المصفوفة التالية: int [] numbers = {100, 200, 300, 400, 500}; يمكن استخدام هذه الطريقة لطباعة عناصر المصفوفة: for(int n : numbers){ System.out.print( n ); System.out.print(","); } حيث تعاملنا مع n كعنصر من عناصر المصفوفة في كل دورة، وبالطبع يمكنك تغيير n إلى أي اسم متغير آخر.
  14. هذه الطريقة تعمل على المتصفحات التي تدعم HTML5: أولا، لنفترض أنك وضعت فيديو/مقطع صوتي بطريقة مشابهة لهذه في صفحتك: <video id="myVideo" width="320" height="176" controls> <source src="mov_bbb.mp4" type="video/mp4"> <source src="mov_bbb.ogg" type="video/ogg"> Your browser does not support HTML5 video. </video> ثم وضعت زر لحساب طول الفيديو/المقطع الصوتي: <button onclick="myFunction()" type="button">Get video length</button><br> ففي هذه الحالة ستكون شيفرة جافا سكربت لحساب طول مدة الفيديو/الملف الصوتي كالتالي: <script> var vid = document.getElementById("myVideo"); function myFunction() { alert(vid.duration); } </script> duration يُرجع طول المقطع الصوتي/الفيديو بالثواني، وإذا كانت هنالك مشكلة في الفيديو/الملف الصوتي، مثل مسار خاطئ أو أن صيغة الفيديو غير مدعومة من قبل المتصفح. سيتم إرجاع NaN. المصدر
  15. توجد أسباب عديدة لبطئ جهاز حاسوبك، وهذه مجموعة من أبرز هذه الأسباب: وجود برامج كثيرة تعمل عند فتح جهاز حاسوبك (مثلا مكافح الفايروسات، سكايب، ...) وهذه البرمج ستزيد المدة اللازمة للوصول إلى سطح المكتب وعمل النظام. وجود فايروسات أو برامج خبيثة تبطئ من سرعة عمل الجهاز. مشكلة في القرص الصلب الخاص بك واقتراب مدة نهاية صلاحيته. عدم إغلاق الجهاز بشكل صحيح، مثل الضغط على زر اطفاء الطاقة أو خلع مقبس الحاسوب مباشرة.
  16. الطريقة المُستخدمة لطباعة سلسلة نصية مع عدد صحيح في شيفرتك خاطئة، ينبغي استعمال %d في المكان الذي تريد ظهور العدد فيه في الجملة الموضوعة ما بين قوسين، فلو افترضنا أنك تريد عرض العدد في آخر الجملة فستكون شيفرتك البرمجية للعرض كالتالي: printf("This is %d",x); الطريقة التي وضعتها لا تعمل مع لغة سي، بل تعمل مع لغات أخرى مثل بايثون وغيرها.
  17. يمكن تحويل ملف txt إلى سكربت مكتوب بلغة Batch وتشغيله، فلو فرضنا أن ملف txt يحتوي على الأمر التالي: echo "Hello World!!!" يتم تحويله إلى سكربت Batch بإضافة سطر @echo off حتى لا يتم عرض الأوامر التي سيتم طباعتها، وبذلك ستكون الشيفرة البرمجية النهائية للسكربت: @echo off echo "Hello World!!!" سيكون امتداد الملف هو .bat ولتشغيله اكتب اسم الملف كاملا (مع الامتداد) في المسار الذي يحتوي على الملف. يمكنك أيضا إضافة سطر يحتوي على كلمة pause حتى تتمكن من رؤية النتائج عند النقر على ملف السكربت، وخلافا لذلك، ستجد أن CMD سيظهر ويختفي بسرعة قبل أن ترى النتائج.
  18. حدّد أولا المجال الذي تريد تعلمه، فالبرمجة بحر شاسع، وتوجد العشرات من لغات البرمجة، فهل تريد كتابة برامج سطح المكتب؟ أم مواقع الويب؟ أم أنك تفضل تطبيقات الهواتف الذكية؟ أو ربما برمجة الألعاب؟ الخ بعد أن تُحدّد المجال اختر اللغة التي تريد أن تبدأ باستخدامها حسب المجال الذي اخترته، ثم ابدأ بتعلمها وخذ وقتًا كافيًا لتعلّم هذه اللغة لا يقل عن بضعة شهور لتتعرّف على اللغة ومكتباتها بشكل جيد. حاول تطبيق كل ما تتعلمه، أنشئ برامج وتطبيقات بنفسك، فكلما كتبت شيفرات برمجية أكثر كلما زادت معرفتك بلغة البرمجة التي تتعلمها. اطلع على الشيفرات البرمجية التي كتبها مبرمجين آخرين، فتتعلم من طرق البرمجة التي يستخدمونها وبذلك تزداد خبرتك باللغة التي تريدها. عندما تحس أن أتقنت الكثير من هذه اللغة انتقل إلى لغة أخرى أو مكتبات أخرى وستجد أنك ستقضي وقتا أقل في تعلمها.
  19. بما أنك لم تذكر الإصدار سأشرح لك على النسخ الانجليزية لسنوات 2013 و2016 من اكسل. اتبع هذه الخطوات لوضع شرط على مجموعة خلايا: حدد الخلايا التي تريد وضع شرط معين لها. انقر على Home > Conditional Formatting > New Rule ثم اضغط على Use a formula to determine which cells to format تحت Format values where this formula is true ادخل الصياغة المطلوبة ثم انقر على Format. استخدم Number وFont وBorder وFill لتعديل بياناتك أو الخلايا ووضع تنسيق لها. أمثلة على الصيغ الشرطية: لإيجاد الخلايات الفارغة (تذكر أن تستبدل B2 بأول خلية تريد أن تستخدمها): =B2="" لإيجاد الخلايا المتشابهة في مجموعة خلايا (سيتم تطبيق التنسيق على العناصر المتشابهة): =COUNTIF($A$1:$D$11,D2)>1 لتجربة شرطين على خلية واحدة (سيتم إرجاع TRUE أو FALSE حسب الإجابة): =AND(A2>A3,A2<A4) لتجربة شرطين على خلية واحدة لكن سيتم إرجاع TRUE إذا كان أحدهما صحيح: =OR(A2>A3,A2<A4) للمزيد من المعلومات: التوثيق الرسمي.
  20. تقريبا، هما نفس الشيء، مكتبتي بايثون لإطار QT لإنشاء برامج سطح المكتب، الفرق الأهم بينهما هو كيفية توليد شيفرتها من سي بلس بلس (مكتوب به إطار QT) فـ PySide تستخدم مولد Shiboken في حين أن الأخرى تستخدم SIP. شيفرات PySide و PyQT متشابهة كثيرا، وتملك PySide رخصة أكثر تحررًا وهذا الأمر قد يكون مفيدا لبعض المطورين. إذا كنت تبحث عن الاستقرار فـ PyQt أكثر استقرارًا من PySide لأن الأخيرة كما قلنا تستخدم Shiboken وهذا المولّد أضعف قليلًا من التي تستخدمه PyQT.
  21. يعتمد ذلك على المراجعات التي قام بها مستخدمي تطبيقك بالإضافة إلى عدد مرات تحميل التطبيق، أي أنه للحصول على أوسمة وللظهور في المراتب الأولى للبحث يجب عليك أن تطور تطبيقك أكثر وأن تزيد من الإعلانات عنه في المنتديات والمواقع المختلفة، حيث كلما قام موقع كبير بالحديث عن تطبيقك كلما اشتهر وزادت عدد مرات تحميله. حاول أيضا أن تنشئ تطبيق فريد من نوعه، لا نسخة مكررة من تطبيقات موجودة سابقا على المتجر، أو على الأقل فكرة نفسها لكن بإضافات جديدة.
  22. إذا أردت تطوير الويب وتعلم برمجة المواقع فاعلم أنه يوجد نوعين من مطوري الويب: مطور الواجهة الأمامية Front End: ويجب عليه إتقان البرمجة باللغات HTML وCSS وJavaScript وjQuery وغيرها من اللغات التي تهتم بواجهة الموقع للمستخدم، ويمكنك البدأ بهذه الدروس لتصبح مطور واجهة أمامية (باللغة العربية): HTML و CSS للمبتدئين: كيف تصمم أول صفحة ويب لك مدخل إلى bootstrap 3 تصميم صفحة موقع باستخدام 3 Bootstrap دروس جافاسكربت متنوعة أما النوع الثاني من المطورين هو مطور الواجهة الخلفية Back End: ويجب عليه إتقان إطارات ويب مختلفة ولغات أخرى مثل php أو بايثون للتعامل مع الخادم بالإضافة إلى انه يجب أن تكون لديه خبرة في التعامل مع قواعد البيانات المختلفة، وأنصحك إذا أردت أن تكون مطور واجهة خلفية، أن تتعلم أساسيات تطوير الويب من الواجهة الأمامية قبل الانتقال إليها (راجع الدروس السابقة)، وهذه مجموعة دروس متنوعة لتعلم أساسيات تطوير الواجهة الخلفية: سلسلة دروس إطار عمل Flask مجموعة دروس PHP سلسلة دروس لإطار عمل Laravel
  23. Simulator يقوم بمحاكاة تصرفات أسلوب جهاز معين أما Emulator فيحاكي الوظائف الداخلية للجهاز. لنفترض أنك تريد محاكات حاسبة قديمة فلديك طريقتين لفعل ذلك: إما أن تكتب برنامج جديد يرسم لك شكل الحاسبة وأزرارها ويعرض لك شاشة لعرض لناتج كما في الحاسبة الأصلية تماما، وعند الضغط على الأزرار ستعمل الحاسبة كما في الحاسبة الأصلية تماما، هنا تم القيام بعملية محاكاة Simulate. أو أن تكتب برنامج يستخدم الوظائف الداخلية للحاسبة القديمة لكن بشكل جديد، أي أنه من الداخل سيعمل بنفس طريقة الحاسبة القديمة لكن شكله مختلف، هنا تم القيام بمضاهاة/محاكاة Emulate. المصدر
  24. لديك مشكلة أمنية في تطبيقك، فالنسخة التي يستخدمها من OpenSSL يحتوي على ثغرات وتهديدات أمنية ستعرض المستخدم والهاتف للخطر، يجب عليك إصلاح هذه المشكلة وإعادة رفع نسخة جديدة من تطبيقك لا تحتوي على ثغرات أمنية قاتلة. يبدو أنك لم تحدّث تطبيقك منذ مدة طويلة، فأنصحك باستخدام نسخة حديثة من OpenSSL في تطبيقك وستحل المشكلة. يُذكر أن OpenSSL هي مكتبة لحماية وتشفير الإتصالات في تطبيقك وهذا هو موقعها الرسمي.
×
×
  • أضف...