# Native Code > برنامه نویسی با C > برنامه نویسی با MFC و ++Visual C > گفتگو: تبدیل کاراکتر انگلیسی به فارسی و برعکس

## A_Salimi

با سلام
نمیدونم برای شما هم تا حالا پیش اومده که در حین تایپ در برنامه word ، یک خط تایپ میکنید بعد میبینید ای داد بی داد فراموش کردید زبان سیستم رو تغییر بدید  (مثل خیلی ها که در حین تایپ به کیبرد نگاه میکنن ) و مثلا به جای فارسی کلی حروف انگلیسی رو تایپ 
کردید . . . از اونجایی که اینجانب علاقه عجیبی به نوشتن برنامه های کوچیکی دارم که به درد خودم بخوره و ازش به عنوان utility استفاده کنم ، با خودم فکر کردم تا یک نرم افزار کوچک طراحی کنم تا تمام اون خط رو به کاراکترهای زبان دیگر تبدیل کند.(شاید هم اینجور چیزی طراحی شده باشه . . . من نمیدونم)

در هر حال شروع به نوشتن برنامه کردم که این تبدیل رو انجام میده(انگلیسی به فارسی و برعکس) . البته از جایگذاری کاراکتر ها استفاده کردم و فعلا برنامه رو برای حروف (بدون در نظر گرفتن حالت دوم و بدون اعداد) نوشتم و اون رو با استاندارد کیبرد خودم طراحی کردم .

برنامه رو حتما دانلود کنید و در موردش نظر بدید.

دو تا سوال دارم :

1-آیا راه بهتری به جای جایگذاری که من در برنامه استفاده کردم وجود داره تا کاراکترهای انگلیسی رو به معادل اون در فارسی و برعکس تبدیل کرد ؟

2-اگر بخوام این برنامه رو به شکلی مشابه در خود نرم افزار word پیاده سازی کنم (مثلا یک خط رو انتخاب کنم و با زدن یک دکمه این تبدیل انجام بشه ) آیا این امکان وجود داره ؟ یعنی میخوام بدونم که برنامه هایی که پلاگین هایی رو به word اضافه میکنند چطور طراحی میشن ؟ و آیا با MFC هم میشه اینجور کارایی کرد ؟

با تشکر

----------


## مهران موسوی

اگه امكانش هست با VC++‎ 6  پياده سازيش كنيد تا بتونم تستش كنم ... چون اين چيزي كه شما مد نظرتون هست با يك Raplace ساده انجام پذير نيست و نياز به پياده سازي يك سري تكنيكهاي خاص داره ... چون زبان فارسي به علت داشتن  چندين واج با شكل يكسان يكم از زبان انگليسي فاصله داره ... پس اگه قصد طراحي يك Language Convertor انعطاف پذير رو دارين بايد يكم حرفه اي تر عمل كنيد ....

يا حق ...

----------


## A_Salimi

> اگه امكانش هست با VC++‎ 6 پياده سازيش كنيد تا بتونم تستش كنم


همون کد ها رو در برنامه ای جدید در ویژوال 6 پیاده کنید وقت زیادی نخواهد گرفت




> چون اين چيزي كه شما مد نظرتون هست با يك Raplace ساده انجام پذير نيست و نياز به پياده سازي يك سري تكنيكهاي خاص داره


نه این خیلی خوب کار میکنه البته استاندارد تمام کیبرد ها هم تقریبا یکسان است احتمالا به جز چند حرف مثل ژ – پ 

شکل زیر را ببینید : که من برای دو جمله آن را تست کردم




سوال اصلی من این است : آیا میشود این طور برنامه ای را به عنوان یک ابزار به word افزود ؟ 

با تشکر

----------


## مهران موسوی

به طور كامل نه ... چون من فكر نكنم براي Word كيت توسعه وجو داشته باشه ... اصلا فكر نكنم قابليت پذيرش پلاگين رو داشته باشه ...

*ولي * شما ميتونيد با هوك كردن كيبورد كامپيوتر كاربر كليد فشرده شده رو در يافت و در مقابل ان كليد مورد نظر را ارسال كنيد .... اميدوارم منظورم رو خوب رسونده باشم ... بهترين راه همين هست به نظر من

----------


## مهران موسوی

دوست عزيز اگه خيلي مايليد كه اين كار رو انجام بدين من يك فكر بهتر هم به ذهنم رسيده ... شما ميتونيد با استفاده از API هندل تولبار  Word رو بدست بيارين و سپس Parent دكمه ي مورد نظر خودتون رو تولبار Word قرار بدين ... و بعد با يك سري از تكنيكها ( فكر كنم يه جا برنامه اي يا نمونه اي براي ارتباط با Word ديده بودم ) متن انتخاب شده رو دريافت كرده و متن جاري را پاك كنيد و متن ويرايش شده رو جايگزين كنيد ....

----------


## Nima_NF

برای ابزار های Office امکان ساخت پلاگین و سایر موارد وجود دارد، مثلا برای add-in از Com توسط MFC یا Win32 یا انواع زبان های مبتنی بر دات نت می توانید استفاده کنید .
برای نسخه های اخیر نیز ابزار ها و روش های جدید برای سرعت بخشیدن به توسعه ارائه شده که متاسفانه بیشتر مبتنی دات نت هستند.

برای اطلاعات بیشتر صفحات زیر را مشاهده کنید:
How To Build a Microsoft Word Add-in (WLL) Using Visual C
COM Add-ins vs. Application-Specific Add-ins
Creating Custom Task Panes in the 2007 Office System

----------


## A_Salimi

از اونجایی که مایکروسافت ورد با vb نوشته شده است از هرکس که این سوال رو پرسیدم استفاده از ماکروها رو در word و کد نویسی با آنها را به من پیشنهاد کرد این چیزی که میخوام احتمالا به این شکل قابل پیاده سازی باشد

نیما جان ضمنا لینک دوم برای من قابل دسترسی نیست . . . همینه ؟

https://barnamenevis.org/COM%20...ific%20Add-ins
تشکر از اینکه وقت گذاشتید .

----------


## Nima_NF

لینک دوم اصلاح شد، فقط صفحه ای برای مقایسه انواع شیوه ها بود.




> از اونجایی که مایکروسافت ورد با vb نوشته شده است...


برای این مورد لینک یا منبع معتبری دارید که توضیح دهد با VB نوشته شده ؟

تشکر

----------


## مهران موسوی

دوست عزيز VB عددي نيست كه خود Microsoft بخواد باهاش يكي از محصولات تجاريش رو بنويسه و به بازار جهاني عرضه كنه ...

Word با *Microsoft Visual C++‎ 7.0 Method2*  نوشته شده ...

----------


## A_Salimi

واقعیتش چیزی رو که در بالا در مورد مایکروسافت ورد گفتم را فقط از یک دانشجوی دوره دکترای کامپیوتر که چندین سال سابقه برنامه نویسی داشت شنیدم ولی در مورد صحت واقعی آن اطلاعی ندارم و با جستجو هم نتوانستم یک منبع معتبر برای اثبات این حرف بیاورم .

با تشکر از اصلاح لینک

----------

