صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: تقنية الأجاكس و قراء الشاشة: متى يمكن ان تبدأ ؟ ( مقال مترجم )

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894

    تقنية الأجاكس و قراء الشاشة: متى يمكن ان تبدأ ؟ ( مقال مترجم )



    السلام عليكم ورحمة الله وبركاته ..

    أثناء تصفحى لموقع sitepoint.com وجدت مقال رائع عن تقنية الأجاكس ..

    تحت عنوان AJAX and Screenreaders: When Can it Work?

    قمت بترجمته وها هو بين يديكم ..

    بسم الله الرحمن الرحيم ...

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

    وكان أفضل النتائج على الإطلاق موضوعاً يحمل العنوان "AJAX and Accessibility" at standards-schmandards, والذى يتحدث عن تأمين تطبيقات العمل بدون الجافا سكريبت, ويناقش أيضاً فكرة إستخدام مربع تنبيه لينقل البيانات على مراحل إلى قراء الشاشة.

    ولكن من الواضح من مضمون الموضوع ان كاتب الموضوع يعتقد ان هذا النهج سوف يفلح.

    بعض المشاكل سواء كانت معقدة ام بارعة وحذقة تظهر مع أى آداه من تلك التى تدعم الجافاسكريبت, ولكن تبقى غير قادرة على التفاعل مع تطبيقك الخاص. المتصفحات المبنية على اساس قراء الشاشة مثل هذه: إنها مستعرضات مؤهله للسكربة, ولكن الدعم الفعلى للجافا سكريبت لاشئ بالنسبة للمتصفحات التى تحتوى على خاصتها.

    الموضوع "Accessibility of AJAX Applications (Part 1)" at WebAIM يوصل تلك النقطة. يمثل ما إذا كانت التغيير فى الواجهات الديناميكية سهل الوصول إليه, التطبيق لابد وأن يخبر المستخدم أن هناك تغيير قد حدث, وبعد ذلك إسمح بوجود دخول مباشر للمحتوى الجديد. وهذا أبعد ما يصل إليه المقال, ولم يقم بكتابه أى شئ عن كيفية حدوث ذلك فعلياً. ولكنه وبكل ثقة وعد بحلول فى الجزء الثانى من الموضوع, ولكن ما أسهل الوعود.

    اينما نظرناً .. بداية من discussions at AccessifyForum ووصولاً إلى مدونات شهيرة مثل ديريك فازرستون و بيتر بول كوخ (او كوتش ) الشئ الوحيد الذى نوافق عليه جميعاً هو أننا نريد معلومات أكثر.

    ولهذا السبب كتبت هذا المقال ( الكاتب ولست أنا ) : لكي أقدم بعض البيانات و التحليلات التى قمت بجمعها, ونرى إذا ماكانت تشير إلى إستنتاجات مفيدة أم لا.

    خلفية بسيطة ...

    خلال الأشهر القليلة الماضية كنت قد شاركت فى أبحاث عن كيفية إستجابة قراء الشاشة والكثير من الأدوات المساعدة للجافا سكريبت: ماهى نوعية الأحداث التى يتم إنشاءها للإستجابة, وتحت اى ظروف. البحث موجود فى أكسس ماترز وتم تنسيقه بواسطة كل من بوب إيستون و ديريك فيزرستون و مايك ستين هاوس و انا " جيمس إدواردز " كاتب الموضوع.

    بالإضافة إلى اننى قمت بعمل أبحاث اخرى من أجل كتابى الأخير The JavaScript Anthology والبحث كان حول الوصول إلى كيفية إستجابة الأدوات المساعدة للسكريبتات التى تحدث الـ DOM ( Document Object Model ) على نحو دورى أو على نحو على فترات غير متزامنه, مثل تلك العناصر التى فى الأخبار المتحركة, او تلك التى تستجيب إلى XMLHttpRequest.

    وما نجد إلا سكريبت مدعوم فى قراء الشاشة ويكون غير منظم وغير مرتب بطريقة لا تصدق. وهذه ليست المشكلة الأكبر! هناك طرق و سبل والتى بواسطتها يمكن عمل خطافات يمكن إستخدامها ( كمثال, كل قراء الشاشة التى تم إختبارها ينشئ حدث ضغط على الروابط و نموذج تحكمات), ولكن النقطة الثابتة هى تلك: كيف لمستخدم قارئ شاشة يعرف أن المحتوى قد تغير؟

    المستخدم زو البصيرة لديه مداخل عشوائية للصفحة, استنادا إلى الحقيقة بأنه أو هي يستطيع/تستطيع النظر إلى قطع مختلفة منها; إذا اختلف شئ ما, نحن نستطيع لفت إنتباه المستخدم إليه بشكل بصري. لكن العميان ليس لديهم هذا المدخل. نظرتهم إلى صفحة خطية، إذن لو أن جزء تلك الصفحة تتغير قبل أو بعد موقع تركيزهم الحالي، المستعمل لن يلاحظ بأن يحدث، وقد لا يدرك بعد ذلك بأنه يحدث حتى عندما يصادفونه.

    قارئ الشاشة لا يعلن عن تغييرات ديناميكية إلى الDOM هذه التغييرات تحدث فقط في الخلفية لذا أى تغيير معطى من المحتمل أن يذهب أكثر بدون إعلام، مالم نبلغ المستعمل بطريقة ما.

    وهذا السؤال ذى القيمة 64,000$: كيف فعلنا ذلك؟ لإجابة ذلك السؤال، نحن سنحتاج لمحاولة بعض الوسائل المختلفة، ثم نرى (أو بالأحرى، نسمع) النتائج!

    الإختبار

    وقبل البدأ فى الإختبارات ربما تريد تحميل أرشيف تلك الإختبارات, لذلك يمكنك مراجعتهم او إختبارهم بنفسك.

    الإختبار الأول

    يجدد الإختبار الأول فقرة النص ببساطة مباشرة تحت عنصر الإطلاق وهذا كود HTML

    كود:
    <p> 
       <a href="./" id="trigger">This link is the trigger.</a> 
    </p> 
    
    <p id="response"> 
       This paragraph will update with the response. 
    </p> 
    
    <p> 
       This is some text that comes after the response, 
       to check continuity. 
    </p>
    وهنا كود الجافا سكريبت

    كود:
    window.onload = function() 
    { 
     var trigger = document.getElementById('trigger'); 
     var response = document.getElementById('response'); 
    
     trigger.onclick = function() 
     { 
       var request = null; 
       if(typeof window.XMLHttpRequest != 'undefined') 
       { 
         request = new XMLHttpRequest(); 
       } 
       else if(typeof window.ActiveXObject != 'undefined') 
       { 
         try { request = new ActiveXObject('Microsoft.XMLHTTP'); } 
         catch(err) { request = null; } 
       } 
    
       if(request != null) 
       { 
         request.onreadystatechange = function() 
         { 
           if (request.readyState == 4  
               && /^(200|304)$/.test(request.status.toString())) 
           { 
             response.innerHTML = request.responseText; 
           } 
         } 
    
         request.open('GET', 'test.php?msg=Hello+World', true); 
         request.send(null); 
       } 
    
       return false; 
     }; 
    };
    و صفحة test.php تخرج بكل بساطة رساله للطلبات تسمى responseText يمكن ان تكون اى شئ:

    كود:
    <?php 
    
    echo "And here's the response - " . $_GET['msg']; 
    
    ?>

    لإداء الإختبار، نفتح رابط الإطلاق بواسطة لوحة المفاتيح، واضغط زر الإدخال Enter لتشغيل الرابط. بالطبع المتوقع من كل الأدوات إطلاق الوظيفة، لكن كيف يستجيبون بعد ذلك من المحتمل سيتفاوتون تماما.

    نتائج الإختبار الأول

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

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

    الإختبار الثانى

    الإختبار الثانى مشابه تقريباً للإختبار الأول, لكن هذه المرة سوف نتخذ خطوة إضافية للضبط وهى الـ document.location إلى معرف الجزء ID الخاص بفقرة الإستجابة (مما يجعله هدف فى الصفحة). هاهي الإضافة إلى وظيفة onreadystatechange

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
       response.innerHTML = request.responseText; 
       document.location = '#response'; 
     } 
    }
    نتائج الإختبار الثانى

    هذه النتائج أكثر ألتوائاً ..

    * في قارئ الصفحة الرئيسية 3.02 نص الرد يقرأ آليا، لكن القارئ لا يتوقف هناك: يستمر بقراءة بقية الصفحة. هذا يجعله خيار ناجح إذا عنصر الرد في نهاية الصفحة.
    * في قارئ الصفحة الرئيسية 3.04 (ملاحظة، نسخة أكثر حداثة) وضع الموقع لم يعد يعمل بشكل صحيح. يرتد القارئ إلى أعلى الصفحة، بدلا من أن إلى فقرة الرد.
    * في هال 6.5 ويوصل بصوت عال 2.0 القارئ يعلن تحميل صفحة جديدة، لكن ثم يبدأ بالقراءة من العنصر بعد الإستجابة، يفتقد الرد بالكامل.
    * في جاوس 5.0 و6.2 الكود لا يعمل، وأحيانا لا يعمل أى شيء في المقابل على الإطلاق؛ الأوقات الأخرى هي إعادة قراءة نص رابط الاطلاق مرة أخرى، أو العنوان العالي المستوى؛ من حين لآخر يتصرف بنفس الطريق كهال ويوصل بصوت عال.

    * في عيون ويندوز 5.0 تحديث المحتوى! لكن بالإضافة إلى ذلك، يتصرف بطريقة يبدو مثل قارئ الصفحة الرئيسية 3.02: يعلن تحميل صفحة جديدة، ثم يبدأ بالقراءة من (ويتضمن) عنصر الرد. لكن هذا السلوك ليس كما يبدو: الأداة فقط تشق ذلك الطريق لأن عيون ويندوز يتذكر موضعك السابق عندما يحمل صفحة زرتها من قبل، ومنذ مجيء الرد مباشرة بعد الإطلاق، هذا أول شئ ستسمع. إذا لم تكن تلك الحالة، يمكن ان يقرأ ببساطة مهما كان مباشرة بعد الإطلاق.

    * عيون ويندوز 5.5 (بيتا) يتصرف بالضبط بنفس طريقة هال ويوصل بصوت عال.

    وللحديث بقية ..





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad


  2. #2


    جزاك الله خير يا اخي Egyptian ونفع الله بك الاسلام والمسلمين






  3. #3
    عضو فعال
    تاريخ التسجيل
    Nov 2005
    المشاركات
    1,624


    جدا رائع عزيزي Egyptian
    شكرا لك






  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    827


    مشكوور عزيزي على المقال ، و انا من بين المغروميييييييييين بهذه التقنية و اقوم بدارستها حاليا ...

    بالفعل هي تقنية المستقبل بدون منازع





    __________________
    لا تطمعن في كرم من غرته شهرته ، فقد نسي انه بالأمس نجح بكرم الاخرين
    e107 المعربة www.e107arabic.org
    شبكة الباتشات و السوفتوير www.all-patch.org
    شركة استضافة مغربية www.naja7host.com

  5. #5
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    86


    فعلا مقال رائع

    نتمنى نرى قسم مختص بالأجاكس في سوالف قريباً...





    __________________
    php-coder

  6. #6


    جزاك الله ألف خير ^ 2 ......
    الله يوفقك ويكثر من أمثالك ...






  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    misk .. مشكور

    مستر لؤى .. العفو

    all-patch العفو .. والتقنية بالفعل لها مستقبل باهر جداً

    php-coder مشكور .. وإن شاء الله يكون هناك قسم للغات التعامل مع المتصفح تلك

    وقد قام الأخ Zizwar بعمل إستفتاء رائع ..

    تفضلوا إلى موضوعه رائع جداً http://www.swalif.net/softs/showthread.php?t=156833

    وبالتوفيق للجميع ..





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    مرشوش بفليت

    جزانا الله وإياكم الخير إن شاء الله

    مشكور ..





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  9. #9
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    لم اكن قد نمت جيداً اثناء ترجمتى للمقال فترجمت نصفة والآن هاهو النصف الآخر ..
    ----------

    هناك نوع من الغموض هنا، في تلك الأدوات العديدة التى تعمل نفس الشيء، يقفز للخلف إلى فقرة الرد والإستجابة ويبدأمن العنصر الذي يظهر بعده. طرأ على بالى HTML قد يكون عاملا، لذا غيرته ليصبح هكذا:

    كود:
    <p> 
       <a name="response" id="response" href="#"> 
           This link will update with the response.</a> 
    </p>
    وبإستعمال نفس الأوضاع، فإن النتائج فى الإختبار الثانى تتغير. على الرغم من اننا لانستخدم الرابط، وتجعل إضافة الخطاف عنصر أكثر تركيزاً ( فى فقرة, او فى خطاف بلا رابط, فيكون لا)، والذى يجعله يبدو انه يعمل بطريقة اكثر نعومة وطواعية مع بعض الأدوات.

    النتيجة للإختبار الثانى المعدل

    نسختى قارئ الصفحة الرئيسية تتصرفان وكإنما فعلا ذلك من قبل، وإنضموا بواسطة الإتصال بصوت عال، الذي يتصرف كـHPR الآن 3.02 (يعمل، لكن يستمر بالقراءة). نسختى عيون ويندوز تتصرف الآن مثلما تصرفت 5.5 من قبل (يبدأوا بالقراءة من العنصر بعد الرد). لكن في جاوس وهال، يعمل الكود بشكل مثالي نص الرد يتكلم، لكن لا شيء يحدث أكثر من ذلك (ولو أن جاوس يعيد قراءة عنوان الصفحة عالى المستوى أولا، قبل نطق نص الرد).

    الإختبار الثالث

    في الإختبار الثالث، سنستبدل وضع المكان بتركيز برمجي programmatic focus() يطلب من رابط الرد، عند تجديد النص. وهذا هو كود HTML الجديد:

    كود:
    <p> 
       <a href="./" id="response">  
           This link will update with the response.</a> 
    </p>
    مرة أخرى, لكن بتعديل صغير ضروري على وظيفة onreadystatechange الأصلية (تغييرات سوف تظهر بوضوح)

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
       response.innerHTML = request.responseText; 
       response.focus(); 
     } 
    }
    نتيجة الإختبار الثالث

    هذا الكود لا يعمل في أي أداة ماعدا جاوس 5.0 ويتصل بالصوت العالى (من الغريب أنه لا يعمل في جاوس 6.2، أى انه نجح فى النسخ السابقة). فشل في العمل في الكثير من وسائل الأدوات الأخرى ولا شئ يحدث على الإطلاق؛ على أى حال، في جاوس 6.2 رابط الإطلاق ستتكلم ثانية، بينما عيون ويندوز تواصل التصرف بالضبط كما فعلت فى الإختبار الثاني المعدل (يبدأ بالقراءة من العنصر بعد الرد).

    الإختبار الرابع

    يستغنى الإختبار الرابع عن عنصر الرد بشكل عام، ويقدم نص الرد في مربع حوارى بدلا من ذلك. إن الـ HTML رابط إطلاق، بينما وظيفة onreadystatechange تم تبسيطها إلى هذه:

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
         alert(request.responseText); 
     } 
    }
    نتائج الإختبار الرابع

    يجب ان يكون هذا آمن للجميع, لكن بشكل مدهش انه ليس كذلك: ترى النوافذ 5.0 لا تخرج المربع الحوارى دائما. وأحيانا، تعلن فقط عن المربع، ولا يخبرك ماذا يقول المربع بالضبط.

    الإختبار الخامس

    فى الإختبار الخامس، سننتقل لتشكيل العناصر. أولا، سنحاول تجديد وتركيز حقل نص:

    كود:
    <form action=""> 
     <div> 
       <input type="text" id="response" size="50" 
           value="This field will update with the response"> 
     </div> 
    </form>
    هاهو التطبيق لوظيفة onreadystatechange :

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
       response.value = request.responseText; 
       response.focus(); 
     } 
    }
    نتائج الإختبار الخامس

    هذا الإختبار لا يعمل مع قارئ الصفحة الرئيسية أو هال (لايحدث شئ على الإطلاق, ولو انه يوجد إستجابة بصرية مثالية). يفشل أيضا في جاوس 6.2، كما هو الحال مع الإختبار الثالث، يكرر رابط الإطلاق مرة أخرى وقد يعيد الإعلان عن العنوان العالي المستوى أيضا.

    يفشل هذا الكود أيضا في عيون ويندوز، الذي يتصرف كما فى فى الإختبار الثالث (وبمعنى آخر: . يبدأ بالقراءة من العنصر بعد الرد). الأنظمة التى تقرأ هذا الكود جاوس 5.0 والإتصال بالصوت العالى، ولو انهم يظهرون "تحرير" أيضا لإعلان حقل التحرير قبل إطلاق قيمته.

    الإختبار السادس

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

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
       response.value = request.responseText; 
       if (typeof response.createTextRange != 'undefined') 
       { 
         var range = response.createTextRange(); 
         range.select(); 
       } 
       else if (typeof response.setSelectionRange != 'undefined') 
       { 
         response.setSelectionRange(0, response.value.length); 
       } 
     } 
    }
    نتائج الإختبار السادس

    إن نمط النجاح والفشل هنا مطابق إلى الإختبار السابق.

    الإختبار السابع

    في الإختبار السابع والنهائى سنستعمل زر لعنصر الرد:

    كود:
    <form action=""> 
     <div> 
       <button type="button" 
         id="response">This button will update with the response 
       </button> 
     </div> 
    </form>
    بعد ذلك سنغير نص الزر ونركزه أكثر, مثلما فعلنا فى الإختبار الخامس:

    كود:
    request.onreadystatechange = function() 
    { 
     if (request.readyState == 4 
         && /^(200|304)$/.test(request.status.toString())) 
     { 
       response.firstChild.nodeValue = request.responseText; 
       response.focus(); 
     } 
    }
    نتيجة الإختبار السابع

    هذا الإختبار يخرج نفس النتائج التى حصلنا عليها فى الإختبارين الخامس والسادس, ولكن مع الإختلاف البسيط وهو أن جاوس و الإتصال بالصوت العالى (حيث يعمل الإختبار) بالإعلان عن الإستجابة بواسطة إخراج الزر بعد النص بدلاً من التحرير قبله.

    الإستنتاج

    لا يبدو اى طريقة موثوقة لإبلاغ قراء الشاشة عن التحديث فى الـ DOM. هناك النظرات التدريجية التي تعمل لواحدة أو أكثر من الأدوات، لكن لا نظرة أو مجموعة عامة يمكنها تغطية الكل، ومعنى ذلك ان حتى الإنذار المتواضع قد لا يعمل بشكل صحيح في عيون ويندوز.
    ثم ماذا يعنى ذلك لنا، نحن المطورون, هل هذا يعنى ان نتوقف عن إستخدام تقنية الأجاكس؟

    نعم أم لا ! .. سأقوم بترجمة آراء الكاتب بعد قليل..

    لكن لنرى آرائكم ..

    شوية راحة بقى

    <<<< تعب الأخ ,,





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  10. #10
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    مجهود رائع ما شاء الله ..


    ولكن كان يمكنك أن تسهل على نفسك :
    http://translate.google.com/translat...enreaders-work




    تحياتي





    __________________
    SWF Thumbnail - tweet me

  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    أخى العزيز ايجيبت تكنو

    مشكور

    بالنسبة لجوجل وغيره فلن يترجم المعنى ولكن الترجمة الحرفية الغريبة ..

    بالطبع انا لا اعرف كل هذه الكلمات ولكن ما اعرف معناه وما اخمن وما استعن ببرامج الترجمة فيه

    فبالنسبة للبرمجة او التطوير فالتعريب والترجمة امر مختلف

    شكراً لنصيحتك





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    بعد الضغط على رابطك اخ ايجيبت تكنو ..

    حاول مشاهدة الاكواد وغيرها

    كود:
    <p> 
    <ahref="./" id="trigger"> هذا الربط هو تحريك. </a> 
    </p> 
    
    <pid="response"> 
    تحديث هذه الفقره علي رد. 
    </p> 
    
    <p> 
    هذه بعض النصوص التي تاتي بعد رد 
    فحص الاستمراريه. 
    </p>
    لا يصلح اى موقع ترجمة فورية لترجمة نصوص أو مقالات برمجية ,, أبداً ..





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    114


    السلام عليكم ,,,

    الرائع Egyptian لك التحية

    الف شكر علي ترجمتك لهذا المقال وان شاء الله يستفيد منه الكثيرين

    بارك الله فيك





    __________________
    نيلين هوست للاستضافة والتصميم
    WwW.NiliNHoST.CoM
    Email: Support@nilinhost.com
    MSN:Omer_Prog@hotmail.com

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    894


    NilinHost

    مشكور عزيزى ..

    ويارب يستفيد منه الكثيرين ..





    __________________
    موقعي الشخصي | MRadwan.net
    تابعني على تويتر | Mohrad

  15. #15


    بارك الله فيك اخوي ... مع اني لاافهم بالبرمجة

    <<<< اي يسوي بسوالف سوفت

    تحياتي










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض