الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

أرجو المساعدة حول كيفية جعل شاشات البرنامج تظهر عربي وانكليزي

Featured Replies

بتاريخ:

السلام عليكم
في البداية أشكر الاستاذ مصطفى على ملفات الفيديو التي تشرح adf بشكل مبسط وجميل
مع العلم أنه لدي بعض التحفظ على الأدوات التي يستخدمها لتحويل الفورم إلى adf ومن أهمها:
1- الشاشات الناتجة تبقى بنفس روح الفورم ولا تتسم بجماليات الويب التي تتيحها adf
2- لا حظت وجود كود غريب وهو الكود الرديف لتعليمات الفورم أي هل المطلوب تعلم لغة جديدة غير قياسية.
3- في حال الرغبة بتطوير النظام الناتج فإنه سيحدث إرباك نتيجة وجود كود غريب ضمن النظام.
4- بما أن نسبة التحويل هي 80% إذا يبقى 20% هي عبارة عن تصحيح أخطاء وتعديل بالشاشات وهذا أعتقد
أنه يحتاج إلى 60% من الوقت فيما لو أننا بدأنا بالتصميم من البداية بدون عملية التحويل.

الآن لدي سؤال حول عملية جعل الشاشات متعددة اللغات علما أنني قمت بكل مايلزم حسب ماورد في كتاب
Web User Interface Developer's Guide for Oracle ADF.pdf أي أنني قمت بمايلي:
1- بناء ملف آخر للغة الانكليزية وهو vcResourceBundle_en يتضمن المرادفات الانكليزي
2- تعرف res ضمن faces-config.xml مع اللغات المدعومة
3- ربط حقول الشاشة بالـ res المقابل
4- بناء backing bean بحيث تتضمن متغير يقوم بتخزين قيمة اللغة المطلوبة (en أو ar)
5- جعل المستخدم يغير قيمة اللغة ضمن backing bean
6- جعل قيمة f:view tag ضمن الصفحات هي نفس قيمة متغير backing bean
الآن عندما يقوم المستخدم بتغيير اللغة تتغير ضمن الصفحة الحالية ولكن عندما أنتقل لصفحة أخرى
تعود إلى اللغة الافتراضية، وكذلك لم أستطع تغير اتجاه الشاشة رغم أني وضع الشرط ضمن ملف trinidad-config.xml

أرجو منكم المساعدة وإذا كان مع قليل من الكود أكون أكثر شكرا لكم

بتاريخ:

الحقيقه ان الطريقه دى تنقصها حاجات كتير اولا احنا بنعمل ثلاث ملفات وليس واحد واحد للعربى والثانى للانجليزى والثالث للغه اللى عاوزها اذا لم يستطع البرنامج تحديد اللغه المستخدمه وبنعمل load Bundle وكمان مبنعملش backing bean للغه ولكن الطريقه اللى بستخدمها بنضع فيها action Listener على ال Button الخاص باللغه وهو اللى يحدد اى لغه حنستخدمها

بتاريخ:
  • كاتب الموضوع

الحقيقه ان الطريقه دى تنقصها حاجات كتير اولا احنا بنعمل ثلاث ملفات وليس واحد واحد للعربى والثانى للانجليزى والثالث للغه اللى عاوزها اذا لم يستطع البرنامج تحديد اللغه المستخدمه وبنعمل load Bundle وكمان مبنعملش backing bean للغه ولكن الطريقه اللى بستخدمها بنضع فيها action Listener على ال Button الخاص باللغه وهو اللى يحدد اى لغه حنستخدمها

شكرا على الرد وأنا سأحاول ستخدام طريقة load Bundle علما أن الخطوات السابقة هي التي مذكورة في الكتاب ويوجد فقرة في الكتاب تقول:
With JSF 1.2 you are not required to load the base resource bundle on each page in
your application with the <f:loadBundle> tag.
على كل حال هل يمكنك كتابة ترتيب الخطوات لاستخدام طريقتك الخاصة أو هل يوجد لينك لديمو يشرح هذه العملية
علما أنني ضمن البرنامج الذي أعمل عليه أريد أن أضع المفاتيح التي تقوم بتغيير اللغة ضمن template حتى لا أكررها ضمن الصفحات
وأعتقد أن هذا الأمر منطقي، أو كأن هناك حلقة ناقصة لا أفهمها....!!

مع الشكر سلفا وآسف على الإطالة.
بتاريخ:

ده ابليكيشن بينفذ اللى انت عاوزه من تغيير اللغه للعربى والانجليزى وعلى فكره مستخدمناش load Bundle لاننا سجلنا ال Bundle فى ال resource Bundle فى ملف ال Faces-config,xml والبرنامج فيه template موضوع فيه البوتون الخاص بالعربى والبوتون الخاص بالانجليزى اعمل Run لصفحة ال home ومنها روح على صفحة ال main

Changelang.rar

بتاريخ:
  • كاتب الموضوع

مشكورة أخت هالة على الكود وخاصة التعليمة
ADFContext.getCurrent().setLocale(newLocale);
في الحقيقة لقد كنت أسير على نفس هذا الطريق ولكني بدل من استخدام التعليمة السابقة كنت قد استخدمت كلاس CustomPhaseListener ومن ثم عدلت ضمن beforePhase
حيث في حال كان (phase.equals(ADFLifecycle.PREPARE_MODEL_ID أقوم بتعديل اللغة وفق التعليمة
FacesContext.getCurrentInstance().getViewRoot().setLocale(newLocale);
علما أن هذه الطريقة قرأتها من كتاب Oracle Fusion Developer Guide
وهي تتطلب أيضا
phase listener must registered with the application in the adf-settings.xml file
الأسئلة الناتجة الآن هي:
1- لماذا يوجد طرق متعددة لحل المشكلة (كل كتاب يحلها بطريقة مختلفة) علما أنها عملية قياسية يجب أن تحل بطريقة واحدة
2- متى نحتاج إلى التعامل مع beforePhase للصفحات لأنني جديد ضمن هذه التقنية
3- بقي شيء واحد لايعمل وهو عندما أقوم باستدعاء شاشة مرتبطة بصلاحيات عندها يتم استدعاء logon باللغة الافتراضية دائما وهي العربية علما أنه كنت قد قمت بتحويل
النظام إلى اللغة الانكليزية.
4- لماذا ملف adf-settings.xml موجود ضمن الديمو الذي أرسلتيه إلي ولماذا هو فارغ أي باختصار لماذا يستخدم

آسف مرة أخرى على الإطالة بس والله adf بحر عميق وبدها واحد سبيح
وشكرا سلفا

بتاريخ:

الأخ mhawad:
أشكر لك ملاحظاتك وإجاباتي عليها كالتالي:

1- الشاشات الناتجة تبقى بنفس روح الفورم ولا تتسم بجماليات الويب التي تتيحها adf
هذا غير صحيح فالشكل الناتج يتبع قالب يتسم بجمال الشكل ويمكنك الاطلاع على مثال للشكل الناتج ولعرض كامل لأداتنا للتحويل من هذا الرابط http://www.sd4it.com...az_demo_01.html

2- لا حظت وجود كود غريب وهو الكود الرديف لتعليمات الفورم أي هل المطلوب تعلم لغة جديدة غير قياسية.
هذا أيضاً غير صحيح حيث تقوم الأداة بالتحويل لكود جافا القياسي مع وجود بعض المكتبات المطورة من شركتنا للمساعدة في التحويل حيث لا يلزم تطوير أوامر PL/SQL من جديد

3- في حال الرغبة بتطوير النظام الناتج فإنه سيحدث إرباك نتيجة وجود كود غريب ضمن النظام.
كما ذكرت في النقطة السابقة فلا يوجد كود غريب

4- بما أن نسبة التحويل هي 80% إذا يبقى 20% هي عبارة عن تصحيح أخطاء وتعديل بالشاشات وهذا أعتقد
أنه يحتاج إلى 60% من الوقت فيما لو أننا بدأنا بالتصميم من البداية بدون عملية التحويل.
المقصود بنسبة التحويل 80% هي توفير 80% من الوقت والجهد المطلوب للتحويل وبالتالي يتبقى 20% فقط

الأخت هالة:
لا يلزم إنشاء 3 ملفات لأن ملف اللغة الافتراضية هو في الواقع أحد الملفات المتاحة في النظام وبالتأكيد سيكون مكرراً. يكفي الإشارة إلى اللغة الافتراضية من الملف faces-config.

توجد بعض الأسئلة وهذه هي إجاباتها:

1- لماذا يوجد طرق متعددة لحل المشكلة (كل كتاب يحلها بطريقة مختلفة) علما أنها عملية قياسية يجب أن تحل بطريقة واحدة
لا توجد طرق مختلفة. في JSF يتم التغيير عن طريق FacesContext.getCurrentInstance().getViewRoot().setLocale(newLocale); وهي أيضاً تعمل في ADF ولكن ما حدث أن أوراكل أضافت بعض المتغيرات الخاصة بـ ADF لتؤدي نفس الغرض بحيث لا تحتاج كثيراً إلى معرفة JSF

2- متى نحتاج إلى التعامل مع beforePhase للصفحات لأنني جديد ضمن هذه التقنية
إن أي صفحة تمر بدورة حياة Lifecycle ، وقد تريد تنفيذ كود معين قبل تنفيذ أي مرحلة من هذه المراحل ، فمثلاً لكي تدعم أدوات الـ ADF تقنية AJAX فيوجد كود يتم تنفيذه لذلك اثناء دورة حياة الصفحة ، وهذا الاحتياج متقدم جداً ولن تحتاجه غلا في حالات نادرة جداً. طالما أنك مبتدئ فلا تشغل بالك به في الوقت الحالي

3- بقي شيء واحد لايعمل وهو عندما أقوم باستدعاء شاشة مرتبطة بصلاحيات عندها يتم استدعاء logon باللغة الافتراضية دائما وهي العربية علما أنه كنت قد قمت بتحويل
الجملة ناقصة وتحتاج إلى تكملة لمعرفة المشكلة بالضبط وما الذي قمت بعمله

عموماً يمكنك الاطلاع على هذا الدرس http://www.sd4it.com...ideos/ch07.html حيث يشرح آلية تعديل اللغة. رغم أن الفيديو يشرحه من خلال JSF إلا ان الطريقة المتبعة واحدة تقريباً فيما عدا استخدام loadbundle

بتاريخ:
  • كاتب الموضوع

مرحبا استاذ مصفى
1- بالنسبة للكود الغريب الذي شعرت بوجوده فهو ما شاهدته في نهاية مقطع الفيديو رقم 21 (يمكنك مشاهدت الصور المرفقة) وهو على ما أعتقد مزيج من الجافا و pl sql متحدين بطريق غريبة ...!!
2- بالنسبة لعملية التحويل من عربي للانكليزي فأشكرك أنت والأخت هالة على ما قدمتموه لي، ولكن للأسف لا تزال شاشة logon تفتح دائما باللغة الافتراضية أي العربية، علما أن مايميز هذه الشاشة هو وجود الكود التالي ضمن مفتاح logon والذي هو عبارة عن navigationItem ومكتوب ضمن الخاصية destination الخاصة به الكود التالي:
#{securityContext.authenticated ? '/adfAuthentication?logout=true&end_url=/faces/home' : '/adfAuthentication?success_url=/faces/home'}

مع الشكر

post-32888-0-71232100-1317821515_thumb.jpg

post-32888-0-33770400-1317821527_thumb.jpg

post-32888-0-17550600-1317821534_thumb.jpg

بتاريخ:

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

بتاريخ:

شوف لما تستدعى صفحة اللوجين طبيعى جدا انها ترجع لل Default لان فى الكود اللى كاتبه انت بتعمل logout وكمان redirect لصفحة اللوجين وفى حاجه معروفه ان redirection making the application fallback to the default locale

الحل انك تغير موضوع ال redirect لحاجه تانيه او انك تجرب انك تضع فى ال locale الخاص بصفحة الlogin فى ال view tag الlocal الموجود فى الكلاس بتاعتك

بتاريخ:

الأخت هالة:
موضوع redirect لا يؤثر على مسألة الـ locale لأنه يتم حفظه في الـ session.
الأخ mhawad:
كما ذكرت لك ، اذكر سيناريو محدد مع الكود حتى نستطيع أن نحدد سبب المشكلة

تم تعديل بواسطة sd4it

بتاريخ:

يا اخ / sd4it

معروف ان ال redirect بيرجع ال browser لل default بتاعه الا فى حالة استخدام تكنيك اخر علاوه على انه اصلا بيعمل logout من السيشن

بتاريخ:

الأخت هالة:
ما تذكرينه غير صحيح.
لا علاقة بين الرجوع إلى الـ default locale وبين الـ redirect حيث أنه في كافة الأحوال يجب حفظ الـ locale في الـ session للاحتفاظ به.
كلامك صحيح في حالة عمل logout لأنه في هذه الحالة يدمر الـ session وبالتالي بدون تكنيك معين فسيتم فقد الـ locale الحالي وبالتالي يتم الرجوع إلى الوضع الافتراضي.
يمكنك التجربة بنفسك للتأكد عن طريق إنشاء نظام يتكون من شاشتين بحيث ييكون هناك تنقل بين الشاشتين ثم قومي بتغيير نوع الـ navigation مرة يكون redirect بالقيمة true ومرة أخرى false وسترين أنها غير مؤثرة والاثنان واحد

بتاريخ:
  • كاتب الموضوع

شكرا للأخت هالة وللأخ مصطفى
أنا مشكلتي انحلت بمجرد وضع local ضمن view شاشة logon أي :
<f:view locale="#{changeLocale.lang}">
أما بالنسبة لترتيب الكود الخاص بي فهو بسيط:
1- مفتاح وحيد خاص بالدخول والخروج وهو عبارة عن navigationItem ومكتوب ضمن الخاصية destination الخاصة به الكود التالي:
#{securityContext.authenticated ? '/adfAuthentication?logout=true&end_url=/faces/home' : '/adfAuthentication?success_url=/faces/home'}
ويتم تغيير text الخاص به حسب securityContext.authenticated
2- مفتاحين خاصين بالتحويل للعربي والانكليزي مرتبطين بmanaged bean

سؤالي للأخ مصطفى
أنت قلت يجب حفظ الـ locale في الـ session للاحتفاظ به وأنا لم أقم بهذه العملية، كيف يتم ذلك وأين؟؟؟

وشكرا سلفا

بتاريخ:

يتم ذلك في كود تغيير اللغة

  • بعد 7 شهور...
بتاريخ:

يتم ذلك في كود تغيير اللغة

السلام عليكم و رحمة الله و بركاته
شكرا للجميع على هذه المساهمة الرائعه و لقد استفدت كثيرا من النقاش

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

و شكرا

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.