PDA

View Full Version : سوال: کنترل تنظیمات Regional and Language Options



mostafa_zamani
پنج شنبه 30 مهر 1388, 09:15 صبح
با تقدیم سلام و احترام خدمت همه سروران گرامی

چگونه می توانیم کنترل کنیم که در Regional and Language Options قسمت Advance آن بروی Arabic قرار دارد ؟

آیا می توانیم خودمان در برنامه آنرا Arabic کنیم . ؟

با تشکر فراوان .

Esikhoob
جمعه 01 آبان 1388, 20:58 عصر
سلام
با دستور Win32API به نام GetSystemDefaultLangID میشود زبان انتخابي در قسمت Non-Unicode(Locale را فهمید.
این لینک را ببینید:
http://www.news2news.com/vfp/?example=77

در Windows7 که امتحانش برای
1065 Farsi
ARABIC(U.A.E) 14337
ARABIC(Egypt) 3073
بود.

یک تابع دیگر هم هست که چون Arabic را بر میگرداند بتر است:


#DEFINE LOCALE_SENGLANGUAGE 4097 && English name of language
#DEFINE LOCALE_SYSTEM_DEFAULT 0x00000800 && Language corresponds to the system default locale.


DECLARE INTEGER GetLocaleInfo IN kernel32;
INTEGER Locale, INTEGER LCType,;
STRING @lpLCData, INTEGER cchData
cBuffer = REPLICATE(CHR(0), 250)
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE,@cBuffer,LEN(cBuffer))
? cBuffer

frahimi
شنبه 02 آبان 1388, 12:01 عصر
با سلام
حال اگر عربی نصب نبود در فاکس پرو چگونه میتوان آنرا نصب کرد

mostafa_zamani
چهارشنبه 06 آبان 1388, 09:09 صبح
سلام
استفاده نمودم .
از راهنمایی شما بسیار سپاسگزارم .

1- حال اگر تنظیمات بروی Arabic نبود خودمان می توانیم در برنامه آنرا عوض کنیم ؟
2- آیا می تواینم پنجره Regional and Language Options را در برنامه باز کنیم ؟

Esikhoob
پنج شنبه 07 آبان 1388, 09:31 صبح
دنبالش گشتم ، پیدانشد.
بنظر نمیرسد روشی باشد ، چون در WINXP وقتی تنظیمات Regional and Language Options را در قسمت NON-Uicode عوض میکند ، از شما CD میخواهد.

اما یک لحظه صبر کنید دستور WIN32API به نام SetLocaleInfo در MSDN پیداکردم ، حالا باید این را به VFoxPro بیاوریم ببینیم کار میکند؟؟

Q177146 در MSDN2008 یک قطعه Code به زبان VFP دارد که از SetLocaleInfo استفاده کرده ، اما تاریخ را تغییر میدهد ، ببینیم کی زودتر مال Locale را پیدا میکنه.

binyaz2003
پنج شنبه 07 آبان 1388, 22:00 عصر
منکه چيزي متوجه نشدم اما همينکه متوجه بشيد نيست ميشه برنامه اي رو که آقاي جواد حسيني در دلفي نوشتن (اين برنامه بدون اينترفيس هست و يکباراجراي اون کافي هست و در قسمت مورد نياز زبان را Arabic ميکند) رو اجرا کرد و بعد از کاربر خواست تا رايانه را Restart کنه.

Esikhoob
جمعه 08 آبان 1388, 19:41 عصر
فکر نکنید که MSDN فقط برای VisualStudio است ، علاوه بر دستورات Win32API کلی مقاله یا خبر دارد به نام KnowledgeBase دارد که شاید در حدود 2000-3000 آن در مورد FoxPro است ، اگر می خواهید KnowledgeBaseمخصوص FoxPro را جستجو کنید ، به نظر من دنباله لغت مورد نظرتان کلمه FOXPRO را هم بنویسید.
من نمیتوانم از روی توضیح MSDN ی سریع یک تابع را به VFP تبدیل کنم ، با اینکه 10 ، 20 برنامه API دار دیده ام. راه من اینست که اول مثالی از آن API که به زبان VFP باشد میبیند و با کمک MSDN آن را تحلیل میکنم و آخر سر اون را اونطوری که میخوام میکنم.
در MSDN درباره دستور SetLocaleInfo ، و درباره آرگمان دومش که اسمش هست LCType ، نوشته که
Type of locale information to set
توضیحاتش بسیار شبیه GetLocaleInfo است . (GetLocaleInfo همانی است که در post قبلی با آن برنامه بدست آوردن زبان کامپوتر را نوشتم) ، در آنجا به جای آرگمان دوم من LOCALE_SENGLANGUAGE گذاشته بودم که یعنی زبان کامپیوتر را بده ، اگر مثلا میگذاشتم LOCALE_SDATE باید فورمت تاریخ را میداد .
LOCALE_SENGLANGUAGE LOCALE_SDATE اسمشان constant هست ، و در واقع فقط یک عدد هستند ، شما میتوانید به جای اینها راحت یک عدد بگزارید و زحمت تعریف #DEFINE را به خودتان ندهید ، ولی constant به نظر من خاصیت comment را دارد چون شما به جای عدد خالی یک عبارت با معنی دارید.
اما در ادامه MSDNگفته که فقط constant های زیرکه اونجا گفته توسط این تابع قبول میشه که LOCALE_SENGLANGUAGE یا چیزی شبیه به این توش نبود ، پس در نتیجه نمیتوانیم با این دستور زبان را عوض کنیم.

در ضمن برنامه آقای binyaz2003 در Windows7 هم کارمیکند .

binyaz2003
شنبه 09 آبان 1388, 10:42 صبح
در ضمن برنامه آقای binyaz2003 در Windows7 هم کارمیکند .

تصحيح کنم که برنامه آقاي سيد جواد حسيني هست که چند سال پيش زحمتش رو کشيدن.

ALI RAFFIE
پنج شنبه 21 آبان 1388, 12:43 عصر
من اين برنامه رو دانلود كردم وقتي اجرا ميكنم هيچ عكس العملي نشون نميده

binyaz2003
پنج شنبه 21 آبان 1388, 15:15 عصر
يک توضيح ديگه راجع به برنامه آقاي حسيني بدم :
اين برنامه در صورتي که فارسي ويندوز شما درست نصب شده باشه در قسمت Advance پنجره Regional and Language Options زبان رو Arabic ميکنه . يعني کاري که براي راست به چپ صحيح در ويژوال فاکس پرو نياز است.
اين برنامه هيچ واسط کاربري نداردو وقتي اجرا ميکنيد انگار چيزي اجرا نميشه.
اما کافيه ريستارت کنيد تا متوجه تغيير بشيد.

ALI RAFFIE
پنج شنبه 21 آبان 1388, 15:27 عصر
جناب حسين زاده روي چند تا سيستم در حالت هاي مختلف امتحان كردم. هيچ اتفاقي نمي افته . آيا با پارامتر خاصي بايد اجرا بشه؟

binyaz2003
پنج شنبه 21 آبان 1388, 23:30 عصر
تعجب ميکنم از گفته شما.من تاحالا مشکلي نديدم.يعني همه جا در ويندوز xp زبان به Arabic تغيير ميده و RightToLeft در ويژوال فاکس پرو بدون مشکل کار ميکنه.

taskhiri
دوشنبه 07 دی 1388, 12:21 عصر
ببخشید آقای بی نیاز ! من اون برنامه exe رو گرفتم ولی می خواستم بپرسم کدی هست که زبان کامپیوتر رو بده ! من میخوام توی vb6 زبان توی regional رو بگیرم و بررسی کنم که آیا عربی هست یا نه ؟ که اگه نبود با این برنامه عربیش کنم ! اون کدی که یکی از دوستان داده بود رو نوشتم همش syntax میداد ! ببخشید که یه خورده خنگم ولی پاسخ این سوال برام مهم و حیاتیه اگه میشه کد دریافت زبان رو بدید !
باتشکر !!!!:خجالت:

binyaz2003
دوشنبه 07 دی 1388, 12:44 عصر
شما کد ها رو در ويژوال بيسيک اجرا کرديد؟

taskhiri
سه شنبه 08 دی 1388, 17:31 عصر
بله ! میگم دیگه من ابلهم ! اگه میشه یه کد بدید که تو وی بی وارد کنم نه توی فاکس پرو !

binyaz2003
سه شنبه 08 دی 1388, 17:53 عصر
شما اين کد روبه راحتي ميتونيد با کمي تغغير درVB استفاده کنيد.لطفا در بخش مربوطه سئوال کنيد.