السلام عليكم
لا شك ان الجميع لديهم برامج لترجمه ,
هذه الاداه طلبت منى في احد المواد كنشاط, و احببت مشاركتكم فيها
السلام عليكم
لا شك ان الجميع لديهم برامج لترجمه ,
هذه الاداه طلبت منى في احد المواد كنشاط, و احببت مشاركتكم فيها
تم تعديل هذه المشاركة بواسطة العيافـي في 29 ديسمبر 2010 في 11:40
عزيزي محمود
سبق وسألتني عن الامر
private static final long serialVersionUID = 1L;
حاول تشغيل البرنامج على جهازك ( كمشروع )
قم بتغيير قيمة serialVersionUID الى 2L مثلا للصنف MainPanel
اعد تشغيل البرنامج
ولحظ ما سيحدث :)
جميل اخى عثمان
لكن عندما استخدمته وجدته يأخذ وقت طويل فى الترجمه
يعنى انا كتبت له كلمه We انتظر فتره طويله تقارب الدقيقه
لماذا ذلك؟
هذا ما حدث
ولكن ايضا لم افهم لماذا
انا حاولت اغير اول حرف فالـ combox الى UpperCase لكن النتيجه مش بتظهر
لم طبعت اسم اللغه بعد التعديل ظهر
لكن لم يظهر فى الـ Combox
حاولت اغير الـ
private static final long serialVersionUID = 1L;
غيرته عمل لى مشاكل ههههههههه
لكن بعد ما اعدته مره اخرى
ظهرت النتيجه
ممكن توضح لى ايه اللى حصل دا ؟
معلش انا عارف انى بتقل عليك
لكن بجد اريد التعلم :)
هذه النسخه باستخدام النت بينز
:)
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 29 ديسمبر 2010 في 12:13
للمتابعه لأني أريد أن أفهم السبب ماهية ال Serialization ...
نسيت ان اذكر بان host & port يتم تغييره على حسب الاتصال بالانترنت عندك,
سرعة البرنامج تعتمد على سرعة الانترنت لديك
نرجع ل serialVersionUID
عند فتح البرنامج ثم اغلاقة لاول مره سيتم حفظة في المسار التالي (C:\Users\oalgahtani\GoogleTranslate.ser)
وسيكون رقم serialVersionUID يساوي 1L
بواسطة الامر التالي
FileOutputStream fout = new FileOutputStream(FILE_PATH); //FILE_PATH = C:\Users\oalgahtani\GoogleTranslate.ser ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(mainPanel); oos.close();
في المره القادمة سيتم قرائة الكائن من نفس المسار بواسطة الطريقة (readObject)
ويوجد فيها الاسناد ( mainPanel = (MainPanel) ois.readObject(); )
هنا يتم مقارة serialVersionUID اذا كانت متساويه فهذا يعني ان الكائنين لهما نفس الاصدار ويمكنك تنفيذ عملية (casting)
اما اذا كانت مختلف ستحصل على الاستثناء الذي حصل معك. ليخبرك بان الرقمين مختلفين
هنا اقتباس ما قاله علاء في هذا الموضوع
اقتباسكل فئة من النوع Serialize لها معرف
هذا المعرف يساعد المترجم على التفرقة ما بين الإصدارات المختلفة من نفس الفئة
خذ مثلاً لو كنت تعمل على فئة اسمها طالب ووضعتها في برنامج عند العميل
ثم قمت بتغيير هذه الفئة على الخادم هنا سيكون رقم الفئة الجديد مخالف لمعرف الفئة القديم
ولهذا لن يعمل البرنامج وسيعلم أن الفئة الموجودة لدى العميل قديمة
على كل يفضل أن تكتب أنت هذا المعرف
لأنك إن لم تفعل فسيقوم المترجم بتوليد رقم جديد عند كل عملية ترجمة وبهذا سيختلف الإصدار دائماً
مما يعني أن العميل سيواجه مشكلة حتى لو لم تختلف نسخة الفئة بشكل حقيقي
ملاحظة
عندما تقوم بالتعديل على الكائن MainPanel لان ترى التعديلات .
ولتتمكن من رؤية التعديلات يجب ان تقوم بتغيير على القيمه serialVersionUID
سبب عدم رؤية التغييرات : لاني اقرا الكائن من جهاز عندما يتساوى رقم serialVersionUID ولا اقوم بانشاء كائن جديد.
أخي العيافي ..
و لم تقوم بتخزين الكائن؟
تقريبا الهدف الرئيسى انه يحفظ الـ host , port
لكن طبعا هيحفظ معاهم الـ text Areas
واللغات المختاره
وبالاضافه للـserialVersionUID
بدلا من انه يحفظ الخصائص فى XML file فحفظ الكائن كاملا
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 29 ديسمبر 2010 في 16:36
العيافـي كتب:عند فتح البرنامج ثم اغلاقة لاول مره سيتم حفظة في المسار التالي (C:\Users\oalgahtani\GoogleTranslate.ser)
بواسطة الامر التالي
FileOutputStream fout = new FileOutputStream(FILE_PATH); //FILE_PATH = C:\Users\oalgahtani\GoogleTranslate.ser
لماذا لا تستخدم الخاصية التالية:
System.getProperty("user.home")- The home directory of the current user
.S.T.A.L.K.E.R كتب:لماذا لا تستخدم الخاصية التالية:
System.getProperty("user.home")- The home directory of the current user
بالفعل تم استخدمها
public static final String FILE_PATH =
System.getProperty("user.home") + System.getProperty("file.separator") + "GoogleTranslate.ser";
السلام عليكم
أخي العيافي لماذا تقوم بعملية serialization للـ panel?
أليس في هذا كلفة كبيرة
على الأقل احفظ الكلمات فقط واجعل باقي الأشياء في الـ panel على أساس أنها عابرة ما يعرف بـ transient
بالمناسبة هناك تعليقة خفيفة تحصل عند الاتصال على الخادم
يمكنك حلها بوضع الدالة translate في EventDispatch
على كل يبدو لي أن البرنامج الغرض منه هو الشرح لا أكثر ولا أقل :)
هل استخدمت هذه الحزمة في أمور حقيقية؟
الصدق أن الترجمة ليست جيدة جداً
تحياتي
العيافـي كتب:نسيت ان اذكر بان host & port يتم تغييره على حسب الاتصال بالانترنت عندك,
سرعة البرنامج تعتمد على سرعة الانترنت لديك
لم افهم موضوع الـ port , host ازاى بيتغيروا انا وضعتهم كما انت وضعت فى الصوره
واشتغل تمام
انما بالنسبه للسرعه فهى 512 لوحدى
وايضا بطىء
بالمقارنه بموقع جوجل
علاء الصالحي كتب:السلام عليكم
بالمناسبة هناك تعليقة خفيفة تحصل عند الاتصال على الخادم
يمكنك حلها بوضع الدالة translate في EventDispatch
هل استخدمت هذه الحزمة في أمور حقيقية؟
هذا لكى يعمل فى Thread منفصل ؟؟؟
تقصد كدا ؟؟
يعنى ايه فى امور حقيقيه ؟؟
ولدى ملفان jar فى المجلد lib
احداهما
json-20090211
والاخر
google-api-translate-java-0.94
الثانى واضح من اسمه لكن ماذا عن الاول ؟؟
قصدت برامج حقيقية ذا معنى وهدف :)
صحيح بالنسبة لموضوع الخيط
بالنسبة للحزمة JSON هذه تقوم بتحويل java object إلى JSON
تحياتي
اعزائي البرنامج كان مطلوب مني في الجامعه وليس عمل حقيقي سأستخدم. ( قوقل قايمة بالواجب و اكثر)
كان بامكاني عدم حفظ الكائن Panel ولكني قمت بحفظه بالطريقة السابقة لتوضيح فائدة serialVersionUID
علاء الصالحي كتب:صحيح بالنسبة لموضوع الخيط
بالنسبة للحزمة JSON هذه تقوم بتحويل java object إلى JSON
تمام
لكن لم افهم استخدام JSON ههههههههههه
معلش :)
العيافـي كتب:اعزائي البرنامج كان مطلوب مني في الجامعه وليس عمل حقيقي سأستخدم. ( قوقل قايمة بالواجب و اكثر)
كان بامكاني عدم حفظ الكائن Panel ولكني قمت بحفظه بالطريقة السابقة لتوضيح فائدة serialVersionUID
نحن نتشاور
لتعم الافاده من البرنامج
طبعا وكمان عمو علاء قال قبل كدا
اقتباسعلى كل يبدو لي أن البرنامج الغرض منه هو الشرح لا أكثر ولا أقل
اخى عثمان
![]()
JSON هو اختصار لـ java script object notation
وهو بديل خفيف الوزن قليل الـ parsing للغة توصيف البيانات xml
على كل يمكن القول بأنه لا يصف البيانات لكنه يهتم بترتيبها
تحياتي