الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دعم العربي في win32 console app

مغلق
بدأه elsheikhmh في 31 يوليو 2005 · 10 رد · 1,472 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد استخدام Visual C++ 6.0 لكتابة برنامج Win32 Console Application بسيط يدعم اللغة العربية

طبعا هذا ما فعلت و لم ينجح

#include <stdio.h>

int main() {
	printf("مرحبا\n");
	return 0;
}

و النتيجة هي

اقتباس
ع╤═╚╟

هل هناك حل؟

و شكرا --

مصطفى

#2

عليكم السلام .

اعتقد لايمكن ... .. الكونسول له خطوط خاصة ... المهم .. انت تعلم السي الان .. وبعد ان تنتقل لتطبيقات الويندوز سترى العربية.. هالمرحلة تعليم فقط ...

لكن ممكن توجد طريقة .. لا اعلم ..

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

شكرا اخي

لكن لم اقصد ذلك انا اكتب سي بلس بلس منذ ثماني سنوات و لكن console فقط بشكل اكاديمي ربما مع مكتبات عديدة و لكن ليس locale.h للاسف و تعرضت لمعظم الموضوعات و على لينكس ايضا و لكني اكره برمجة تطبيقات الويندوز جدا و لذلك ابرمج java معظم الوقت و بعض الاحيان مكتبة Qt على لينكس

لكن ما اخجل منه حقا الان انه بعد كل ذلك فانا لا اعرف كيف ادعم العريبة

انا ايضا لا احب هذه الطريقة - فيجوال سي او كل عك مايكروزفت ليس امتداد طبيعي للسي - السي هي السي افعل بها ما تشاء لكن تطبيقات الويندوز هي مجرد تطبيقات. ممكن تكتب بالسي مكتبة grahpics اكتب بها driver اكتب بها operating system- io system - threading package - parser - compiler - interpreter او حتى operating system

لكن من فضلك لا تقل انها مرحلة تمهيدية للفيجوال سي

ربما الاخوة هنا مشبعين بالفكر من ويندوز - كل حاجة بتيجي عالجاهز point and click

اقتباس: اعتقد لايمكن ... .. الكونسول له خطوط خاصة

ما اريد معرفته هو كيفية تغيير الخطوط و ضبط اللغة (الخط - الاتجاه - التكويد ) او (font - direction-encoding)

ما اعرفه ان هناك مكتبة locale.h و لكن في الواقع ابحث عن مساعدة كريمة من احدهم استخدمها من قبل - خصوصا ان وقتي ضيق لا يسمح بتصفح المواصفة القياسية ANSI/ISO Standard المملة و لكن بها باب كامل عن i18n

مصطفى

تم تعديل هذه المشاركة بواسطة elsheikhmh في 1 أغسطس 2005 في 00:11

#4

اخوي اذا كنت تبي تكتب بالعربي استخدم wchar_t بدل من char

واستخدم wcout بدل من cout لكن لا تنتظر منه أن يطبع لك بالعربي لأن الدوس نفسه ما يسمح

لكن مثلا إذا أردت التعامل مع الملفات فاستخدم wfstream بدلا من fstream وراح تكتب بالعربي

بإختصار أضف w قبل بعض الكائنات او الدوال وراح تشتغل معك مضبوط

وترى الحروف راح تبدأ الظاهر من 193 الى 238 أعتقد كذا وبتكون باليونكود :D

وأخيرا إذا وضعت سلسة حرفية في برنامجك وأردت أن تكون باليونكود فإسبقها بحرف L مثال :-

wchar_t * str =  L" هذه اللغة العربية ";

واي استفسار أنا جاهز

تم تعديل هذه المشاركة بواسطة b.m.s في 1 أغسطس 2005 في 03:13

#5

لاأعرف , لكن أظن ان المشكلة عدلت في النسخ الجديدة من vc أمثال الدوت نت , والموضوع تم نقاشه كثيرا سابقا , يمكن أن تبحث في المنتدى وستجد عدة مواضيع منها ماو للأخ هاني الأتاسي وغيرها الكثير ,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#6

شكرا اخ bms ساجرب و اعطيك رد

اقتباس: من vc أمثال الدوت نت

اخ HGB لا اريد دوت نت انا بدي اشتغل ANSI C علشان لينكس كمان

سابحث اكثر و اوافيكم

شكرا

#7

السلام عليكم

الان wchar_t فعلا تدعم العربي لكن ماذا عن مكتبة معالجة النصوص؟؟ strcmp الخ

في الواقع التطبيق الذي افكر فيه هو لغة برمجة عربية و لذلك احتاج الى مكتبة معالجة نصوص تدعم wide char

مصطفى

#8

دعم اللغة العربية ليس مشكلة يا عزيزى فمعالجات 32 بت تدعم العربية ولكن لكل معالج اومر معية ويوجد مقاطعة فى البيوس

اكيد تدعم هذا ولا تنسى ان كل ما تفعله فى حياتك فى البرمجة باى لغة هو استدعاء لبرامج كتبوها عمالاقة وهى المقاطعات

المقاطعة عبارة عن برنامج تقوم باستدعاءه

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

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

لذالك فدعم اللغة العربية متواجد فقط فى خلايا الويندوز API وربما تنفذ تلقائيا عندما تصنع الاداة TEXTBOX

ولكن ممكن فى المستقبل ان تكون برامج الكونسل تدعم العربى

ارجو ان كون افادتك يا صديقى

وارجو التعليق اذا كان فى اخطاء

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 30 أغسطس 2005 في 23:09

_____________________________

C Language && Windwos_API

_____________________________

#9
hamada hassan ali كتب:
دعم اللغة العربية ليس مشكلة يا عزيزى  فمعالجات 32 بت  تدعم العربية  ولكن  لكل معالج اومر معية  ويوجد مقاطعة فى البيوس 

اكيد تدعم هذا  ولا تنسى ان كل  ما تفعله فى حياتك  فى البرمجة باى لغة  هو استدعاء لبرامج كتبوها عمالاقة  وهى  المقاطعات

المقاطعة عبارة عن برنامج تقوم باستدعاءه

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

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

لذالك  فدعم اللغة العربية  متواجد فقط  فى خلايا الويندوز API  وربما تنفذ تلقائيا  عندما تصنع الاداة  TEXTBOX

ولكن ممكن فى المستقبل  ان تكون برامج الكونسل تدعم العربى

ارجو ان كون افادتك يا صديقى 

وارجو التعليق اذا كان فى اخطاء

بالطبع توجد أخطاء

المعالج لا يعرف عربي و لا انجليزي و لا بطيخ يعني لا يوجد معالج جديد يدعم العربي و معالج قديم لا يدعمه و هذا لأن المعالج لا يتعامل مع لغات و لكنه يتعامل مع اشارات كهربية ....

و مامعنى خلايا الويندوز API ؟؟؟؟؟؟

و ماعلاقة الTextBox بدعم اللغة العربية في Windows ؟؟؟؟

أما موضوع دعم الConsole للغة العربية أذكر أنه قد رأيت منذ سنوات طويلة عندما كنت أستخدم Windows 98 مايسمى بArabic Console أو Arabic DOS و كان يدعم العربي و لكنه كان غبياً جدا و لم يظهر بعد ذلك...

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#10
اقتباس
و ماعلاقة الTextBox بدعم اللغة العربية في Windows ؟؟؟؟

انا اقصد انه لما يعمل بنظام النوافذ ممكن يبنى TEXTBOX او اى ادة جاهزة لها خاصية الكتابة عليها

تدعم العربية

اقتباس
المعالج لا يعرف عربي و لا انجليزي و لا بطيخ يعني لا يوجد معالج جديد يدعم العربي و معالج قديم لا يدعمه و هذا لأن المعالج لا يتعامل مع لغات و لكنه يتعامل

هنا ممكن اكون مخطاء

ولكن حسب ما اسمع ان معالجات 16 بت لا تدعم واجهات رسومية اما 32 بت يدعم الواجهات

وياريت تقولى الفرق الذى يفرق بين معالج واخر

اقتباس
أما موضوع دعم الConsole للغة العربية أذكر أنه قد رأيت منذ سنوات طويلة عندما كنت أستخدم Windows 98 مايسمى بArabic Console أو Arabic DOS و كان يدعم العربي و لكنه كان غبياً جدا و لم يظهر بعد ذلك...

اعتقد سمعت ذالك من قبل

ولكن هل هو باستخدام مقاطعات بيوس اودوس تودى الى هذا الغرض

ولا ايه بالظبط

انا حسب معلوماتى ان كل شىء فى الكمبيوتر تستدعى عن طريق المقاطعات البوس والدوس

وهذه المقاطعات عبارة عن برامج يقوم المبرمج باستدعاءها

هل يوجد برنامج خاص بدعم العربى ولا ازى تم برمجة العربى

وجهة نظر:

اذا كان لغة السى تترجم الكود باستدعاء مقاطعات البيوس او الدوس او بالبرمجة المباشرة الى 0 و1

فان كان دوال API مصممة بلغة السى فهى عبارة فى الاصل عن استدعاء مقاطعات البيوس او الدوس

ياريت توضيح للعملية دى ماشية ازى

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 30 أغسطس 2005 في 23:48

_____________________________

C Language && Windwos_API

_____________________________

#11

المعالج ليس له أي علاقة بكون نظام التشغيل سيكون ذو واجهة رسومية أو نظام نصي أو أي شئ المعالج لا يفعل أكثر مما يدل عليه اسمه فهو يعالج البيانات و مادامت البيانات وصلت الى المعالج إذن فقد تحولت الى إشارات كهربية. و لكن تواكب ظهور الأنظمة ذات الواجهات مع ال32 بت و هذا لاحتياجها الى مزيد من السرعة لمعاجة الصور و رسم الواجهة و لكن مثلا Win3.11 كان يعمل على معالجات 16 بت بلا مشاكل

الBios أو الInterrupts هي عمليات بسيطة و أساسية تكتب بلغة الألة مباشرة و تخزن كما هي و هي لا تستخدم الا في العمليات الأولية للنظام أثناء عمليات الboot و خلافه..

أيضا يجب أن تعلم أن النصوص او الText ماهو إلا مجرد بيانات تخزن في الRAM فهي أيضا تتحول الى مايناظرها بالBinary و لهذا توجد الCoding Systems مثل ال ASCII و ال Unicode و هذا لتحويل النصوص الى أرقام بالإضافة الى المحافظة على اللغة نفسها فمثلا لا يمكن أن يكون هناك حرفان في أي لغة أو حتى من لغتين مختلفتين لهما نفس الCode في نفس الCoding...

تم تعديل هذه المشاركة بواسطة bashmohandes في 31 أغسطس 2005 في 00:16

Sr. Software Development Engineer
Hulu, LLC
My Blogs

هذا الموضوع مغلق.

مواضيع مشابهة