النتائج 1 إلى 12 من 12

الموضوع: ما هو النظام الصحيح في عمل موقع متعدد اللغات ؟!

  1. #1
    عضو فعال
    تاريخ التسجيل
    May 2006
    المشاركات
    1,178

    Question ما هو النظام الصحيح في عمل موقع متعدد اللغات ؟!



    السلام عليكم اعضاء سوالف الكرام

    إذا اردت عمل موقع متعدد اللغات ما هو النظام اللي اتبعة

    هل اجعل قاعدة بيانات الاعضاء واحدة ولكن اجعل قاعدة المحتوى بالكامل مختلف ؟

    ام اجعل قاعدة البيانات كاملة باعضائها بكل شئ مختلفة لكل لغة قاعدة بيانات خاصة بترتيب خاص ؟

    ما هو النظام الافضل والمتبع لدى المواقع الشهيرة ؟





    __________________
    مبادرة حدث متصفحك - شاركوا بها في مواقعكم
    You have to know, If you pay peanuts you get monkeys


  2. #2
    عضو جديد
    تاريخ التسجيل
    May 2010
    المشاركات
    17


    بحسب خبرتي المتواضعة

    إذا أردنا عمل موقع باللغتين العربية والإنجليزية ، قم بعمل الجداول داخل قاعدة البيانات بحيث تحتوي على عمودين عمود خاص بالمحتوى باللغة الإنجليزية ، والعمود الأخر يحتوي على المحتوى باللغة العربية

    مثلاً .. جدول الأخبار سوف يحتوي على الأعمدة التالية
    id
    title_ar
    title_en
    text_ar
    text_en

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


    موفق إن شاء الله






  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    975


    نظام دروبال يوفر يوفر امكانية عمل موقع متعدد اللغات وبشكل بسيط وسلس

    http://drupal.org

    من أقوى انظمة ادارة المحتوى






  4. #4
    عضو فعال
    تاريخ التسجيل
    May 2006
    المشاركات
    1,178


    بحسب خبرتي المتواضعة

    إذا أردنا عمل موقع باللغتين العربية والإنجليزية ، قم بعمل الجداول داخل قاعدة البيانات بحيث تحتوي على عمودين عمود خاص بالمحتوى باللغة الإنجليزية ، والعمود الأخر يحتوي على المحتوى باللغة العربية

    مثلاً .. جدول الأخبار سوف يحتوي على الأعمدة التالية
    id
    title_ar
    title_en
    text_ar
    text_en

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


    موفق إن شاء الله


    فعلاً انا رأيتها هي انسب طريقة , لكن فتحت الموضوع لعل هناك فكرة افضل , حتى مستقبلاً إذا هنا 5 لغات مثلاً لا تسبب مشاكل فنية

    ولدي سؤال لخبراء قواعد البيانات , هل كثرة الجداول في قاعدة البيانات , تسبب مشاكل





    نظام دروبال يوفر يوفر امكانية عمل موقع متعدد اللغات وبشكل بسيط وسلس

    http://drupal.org

    من أقوى انظمة ادارة المحتوى

    شكراً لك اخي الكريم , لكن البرمجة لابد ان تكون خاصة لان الموقع يتطلب مميزات خاصة برمجياً





    التعديل الأخير تم بواسطة TlT ; 11-07-2010 الساعة 07:37 PM
    __________________
    مبادرة حدث متصفحك - شاركوا بها في مواقعكم
    You have to know, If you pay peanuts you get monkeys

  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    والله ما في نظام صحيح
    كل واحد ممكن ينفذ الفكرة على كيفه

    انا كنت بنفذ الحل كالتالي:

    الجدول:
    id
    title
    content
    date
    translation_for
    ====

    حسب رأيي اسهل وافضل فكرة
    يعني تضيف كل لغة كموضوع مستقل
    وفي حقل translation_for تضيف رقم الموضوع(id) للغة الأصلية
    طبعًا المواضيع باللغة الاصلية قيمة هذا الحقل فيها =id
    يعني تأخذ لغة وتعملها اللغة الاساسية - نفرض انها العربية
    لما بدك الترجمات الثانية بتعمل

    كود:
    select * from posts where translation_for = '$translation_for'
    المتغير اللي بالاستعلام برجع للموضوع اللي انت فيه
    =======
    بالنسبة لكثرة الجداول ما اتوقع يكون فيها مشكلة
    شوف مثلا منتدى ال vb 4 عدد الجداول اللي فيه 178

    بس المشاكل بتكون في طريقة ربط الجداول ببعضها - لما تعمل normalization
    لإنها محتاجة شخص فاهم(لما يصير عندك استعلام 20 متر)- وطبعًا لإنها بتأثر على اداء القاعدة
    شوف مثلا هذا الاستعلام:
    كود:
    SELECT
      m.name AS model_name,
      c.countryName,
      COUNT(*) AS network_count
    FROM
      models                        AS  m
      INNER JOIN models_networks    AS mn ON mn.model_id = m.id
      INNER JOIN networks           AS  n ON n.id = mn.network_id
      INNER JOIN countries_networks AS cn ON cn.network_id = n.id
      INNER JOIN countries          AS  c ON c.id = cn.country_id
    WHERE
      c.countryName = 'France'
    GROUP BY
      m.name,
      c.countryName
    هذا ان احتجتها اصلا ً





    التعديل الأخير تم بواسطة ahmad sadiq ; 11-07-2010 الساعة 08:20 PM

  6. #6
    عضو فعال
    تاريخ التسجيل
    May 2006
    المشاركات
    1,178


    شكراً اخي ahmad sadiq سيتم التخطيط بهذه الطريقة





    __________________
    مبادرة حدث متصفحك - شاركوا بها في مواقعكم
    You have to know, If you pay peanuts you get monkeys

  7. #7


    نصيحة, ابعد عن استخدام قاعدة البيانات قدر الامكان, اقصد بخصوص اللغة تحديدا, تخيل كل زائر يضمن لك كذا كويري على قاعدة البيانات وفوق هذا اللغة !

    يمكنك استخدام نظام الملفات في اللغة, كمثال ان تكتب في ملف ما متغيرات وتسميه باسم ما يدل على اللغة, ساعطيك مثال و لكن الميزة بهذه الطريقة التي اتحدث عنها انها اكثر مرونة في اضافة اكثر من لغة واسهل بالتعديل.

    مثلا اكتب ملف اسمه lang-en وفيه المتغيرات شبيهة بالتالي
    home=Home
    .
    .
    email.sendto=Send To
    .
    .
    categories.title=Category
    .
    .
    file.size=File Size


    وفي ملف عربي lang-ar تكتب
    home=الرئيسية
    .
    .
    email.sendto=إرسال الى
    .
    .
    categories.title=تصنيف
    .
    .
    file.size=حجم الملف



    هذه أمثلة, طبعا فيه طريقة افضل بالتنظيم لكن اعطيك مثال ورأيته مستخدم بأكثر من نظام.

    طبعا سواء بالاعتماد على الملفات او قاعدة البيانات, لكل طريقة سلبيات وايجابيات, وقد تحل بعض الامور بحلو لمتقدمة معقدة, لكن مبدئيا اقول لك وازن بين هذا النظام وهذا النظام وحاول توزيع الضغط, يعني مثلا لو عندك مركز تحميل ملفات, فيفضل ان تكون اللغة في قاعدة البيانات, اما لو عندك موقع اخباري او بورتال او ومدونة كامثلة فيفضل جعل مخزن اللغة كنظام ملفات.





    __________________
    مدونتي: المظفر بالله
    لم يجعل الله لك الاختيار في جنسيتك او على أي ارض تولد, ولا في عروبتك, لكن ترك لك الاختيار في دينك, فدعك من العصبية الجاهلية على أساس الجنسية او العروبة, فالفضل بينكم بالتقوى.

  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    طريقة الاخ المظفر بالله صحيحة جدًا

    اعمل المواضيع بالقاعدة
    والكلمات بالملف
    بس ما تقدر تستغني عن القاعدة نهائيًا
    اصلا هي وجدت حتى تساعدنا

    لتسهيل عملية بناء ملفات اللغة كنت قد برمجت اداة صغيرة تختصر الوقت بشكل كبير
    تدخل لها قالب عادي وتحوله لقالب يدعم تعدد اللغات

    كيف؟؟

    يتم الاستعانة برموز خاصة لتمييز النصوص
    يعني:

    كود:
    <html>
    <head>
    <title>@@test s@ite@@</title>
    </head>
    <body>
    <h1>@@welcome to my site@@</h1>
    <p>@@this is test paragraph@@</p>
    <h2>@@welcome man hahaha!@@</h2>
    </body>
    
    </html>

    كيف ما انت شايف كل النصوص اللي بدها ترجمة مميزة ب @@ في البداية والنهاية
    مندخلها على ملف السكربت
    وبتعمل استبدال كل نص بخلية مصفوفة
    يعني بتعمل التالي:
    كود PHP:
    <?php require_once('mylang.php');?>
    <html>
    <head>
    <title><?php echo $lang['test_s@ite'];?></title>
    </head>
    <body>
    <h1><?php echo $lang['welcome_to_my_site'];?></h1>
    <p><?php echo $lang['this_is_test_paragraph'];?></p>
    <h2><?php echo $lang['welcome_man_hahaha!'];?></h2>
    </body>

    </html>
    ملف اللغة:
    كود PHP:
    <?php
    $lang 
    = array();
    $lang['test_s@ite']='test s@ite';
    $lang['welcome_to_my_site']='welcome to my site';
    $lang['this_is_test_paragraph']='this is test paragraph';
    $lang['welcome_man_hahaha!']='welcome man hahaha!';

    ?>
    هاي الشغلة بتوفر عليك النسخ واللصق والتنقل بين الملفات، يعني بتوفر عليك تقريبًا 4-3 ساعات في سكربت عادي

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

    الملف مرفق اذا حابب تطور فيه





    التعديل الأخير تم بواسطة ahmad sadiq ; 12-05-2011 الساعة 02:17 AM

  9. #9
    عضو فعال
    تاريخ التسجيل
    May 2006
    المشاركات
    1,178


    طيب ما رأيكم إذا ابتعد من ان تكون الصفحة نفسها باكثر من لغة

    واجعل كل لغة لها موقعها الخاص , ولكن كلها تأتي من قاعدة بيانات واحدة فقط وهي العضوية

    مثال موقع ياهو

    http://everything.yahoo.com/us/?world

    كل موقع عبارة عن صب دومين ولكن المحتوى والاسكربت بالكامل ليس له علاقة ببعض , ولكن فقط هو مجرد ربط العضوية

    هل هذا افضل ؟





    __________________
    مبادرة حدث متصفحك - شاركوا بها في مواقعكم
    You have to know, If you pay peanuts you get monkeys

  10. #10


    طيب ما رأيكم إذا ابتعد من ان تكون الصفحة نفسها باكثر من لغة

    واجعل كل لغة لها موقعها الخاص , ولكن كلها تأتي من قاعدة بيانات واحدة فقط وهي العضوية

    مثال موقع ياهو

    (((( رابط ) رابط ) رابط ) رابط ) ((( رابط ) رابط ) رابط ) (( رابط ) رابط ) ( رابط ) http://everything.yahoo.com/us/?world

    كل موقع عبارة عن صب دومين ولكن المحتوى والاسكربت بالكامل ليس له علاقة ببعض , ولكن فقط هو مجرد ربط العضوية

    هل هذا افضل ؟
    ذكرتني صحيح, انا لم احسب حساب المحتوى, حسب حساب السكريبت نفسه بعناصره بدون المحتوى

    لكن المحتوى ايضا حله بسيط جدا, يمكنك ان تخزن المحتوى العربي والانجليزي في نفس الجدول بل في نفس الخلية ايضا, بمعنى يمكنك ان تحفظ البيانات بالشكل التالي (كمثال)

    كود:
    <lang=ar>هذا هو المحتوى</lang><lang=en>this is the content</lang>
    او كمثال اخر
    كود:
    <content>
        <dynamic-content language-id="ar_SA">
        هذا هو المحتوى العربي
        </dynamic-content>
        <dynamic-content language-id="en_US">
        This is the English Content
        </dynamic-content>
    </content>
    يعني بنفس صيغة الXML
    ويحفظ بهذا الشكل في قاعدة البيانات, اقصد تحديدا في نفس الخلية المخصصة لحفظ المحتوى مثلا, ويتم معالجته بالكود, وبذلك لا تحتاج قاعدة ثانية ولا جدول ثاني ولا اضافة اعمدة بلا داعي قد تعبأ وقد تبقى فارغة, بهذا الشكل سيكون ديناميكي لحد ممتاز, بحيث اضافة لغة جديدة لا تحتاج منك الى تعديل على بنية القاعدة نهائيا, وبهذا تكون ايضا وفرت على نفسك كويري او قللت من حجم الصف الراجع قدر الامكان وخليته على قدر الحاجة .

    وطبعا لا داعي لذكر انه بعد استعادة البيانات من القاعدة يمكنك التصرف معها برمجياً, وكذلك الامر لحفظ البيانات بطبيعة الحال.

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





    التعديل الأخير تم بواسطة المظفر بالله ; 13-07-2010 الساعة 01:20 AM
    __________________
    مدونتي: المظفر بالله
    لم يجعل الله لك الاختيار في جنسيتك او على أي ارض تولد, ولا في عروبتك, لكن ترك لك الاختيار في دينك, فدعك من العصبية الجاهلية على أساس الجنسية او العروبة, فالفضل بينكم بالتقوى.

  11. #11
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    يعني حتى ملفات ال xml مش سهلة لأنه يتم فتحها ومعالجتها
    في الذاكرة- in memory processing

    كلشي اله حسنات وسيئات
    وكيف ما قلت لا يوجد طريقة صحيحة

    mysql اقوى مما تتخيل





    التعديل الأخير تم بواسطة ahmad sadiq ; 13-07-2010 الساعة 09:01 AM

  12. #12


    يعني حتى ملفات ال xml مش سهلة لأنه يتم فتحها ومعالجتها
    في الذاكرة- in memory processing

    كلشي اله حسنات وسيئات
    وكيف ما قلت لا يوجد طريقة صحيحة

    mysql اقوى مما تتخيل
    اخي لم اقل تحفظ ملفات XML, قلت جزئية المحتوى تحفظ باي شكل في خلية واحدة, بحيث تستطيع الوصول للمحتوى الانجليزي والعربي بدون مشكلة, وبدون اعباء اضافية, ومن هذه الطريق التي اقترحتها, ان يتم حفظها بشكل تاج تدل على اللغة في قاعدة البيانات, ولكي اقرب الصورة اكثر اقتراح ان يتم تخزينه بشكل "يشابه" الهيكل للـ XML , ولكن هنالك طرق اخرى لكن مجرد اقتراح لتوضيح الفكرة ...





    __________________
    مدونتي: المظفر بالله
    لم يجعل الله لك الاختيار في جنسيتك او على أي ارض تولد, ولا في عروبتك, لكن ترك لك الاختيار في دينك, فدعك من العصبية الجاهلية على أساس الجنسية او العروبة, فالفضل بينكم بالتقوى.





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

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

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