PDA

View Full Version : فارسی کردن ویندوز



سید حمید حق پرست
چهارشنبه 03 خرداد 1391, 18:53 عصر
سلام دوستان
بنده یه هفته میشه که رو برنامه ای کار میکنم که با زدن دکمه ای در برنامه زبان فارسی در ویندوز نصب بشه (چه XP چه 7)
ولی به جایی نرسیدم اگر دوستان محبت کنند و راهنمایی کنند یه دنیا ممنون میشم:قلب:


یا علی (ع)

SlowCode
چهارشنبه 03 خرداد 1391, 19:30 عصر
منظورتون نصب محیط فارسی واسه ویندوزه یا کیبورد؟

سید حمید حق پرست
چهارشنبه 03 خرداد 1391, 20:48 عصر
کیبورد و تنظیمات مربوط به رفع مشکل برنامه های فارسی


یا علی (ع)

سید حمید حق پرست
شنبه 06 خرداد 1391, 12:30 عصر
دوستان کسی این روش رو میدونه؟
ممنون میشم جواب بدهید


یا علی (ع)

arenaw
شنبه 06 خرداد 1391, 14:54 عصر
تا جایی که من اطلاع دارم یه واسه کیبرد باید یه فایل dll رو جایزگنین یکی از فایل های ویندوز تا جای پ و ژ و اینا درست بشه (اسمشو اصلا یادم نمیاد ولی سرچ کنی پیدا میکنی)
واسه برنامه های فارسی که روی ویندوز اینگلیسی هم نصب میشه و کاراکتر ها مشکل دارن باید این مسیرو بری و مقدار رو به Persian تغییر بدی
Control Panel \ Region and Language \ Administrative \ Language for non-Unicode Parogram

ولی اینکه چه جوری تو vb بخوای اینکارارو کنی، واسه اولی که باید اون فایل اصلی رو takeown کنی (با cmd) بعد هم جایگزین کنی
واسه دومی هم فکر میکنم باید آدرس اینو تو registry پیدا کنی و اونجا مقدارشو تغییر بدی

'البته در حد اطلاعات خودم گفتم و شاید درست نباشه

ASedJavad
دوشنبه 08 خرداد 1391, 21:33 عصر
تا جایی که من اطلاع دارم یه واسه کیبرد باید یه فایل dll رو جایزگنین یکی از فایل های ویندوز تا جای پ و ژ و اینا درست بشه
واسه برنامه های فارسی که روی ویندوز اینگلیسی هم نصب میشه و کاراکتر ها مشکل دارن باید این مسیرو بری و مقدار رو به Persian تغییر بدی


جناب حق پرست، شما منظورت اولیه یا دومی؟

بهروز عباسی
سه شنبه 09 خرداد 1391, 00:01 صبح
برای نصب زبان فارسی در ویندوز باید دوتا فایل ('KBDFA.dll' و 'l_intl.nls') کنار برنامه بذاری و کدهای زیرو اجرا کنی
procedure AddFarsiLNG;
var Vreg:TRegistry;
begin
//Copy Files
CopyFile('l_intl.nls','C:\windows\system32\l_intl. nls',true);
CopyFile('KBDFA.dll','C:\windows\system32\KBDFA.dl l',true);
//Create Registry Values
Vreg:=TRegistry.Create;

with Vreg do
begin //© Koosha System Software http://delphi-center.blogfa.com/
try
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Keyboard Layouts\00000429',true);
WriteString('Layout File','KBDFA.dll');
WriteString('Layout Text','Farsi');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Locale',true);
WriteString('d','1');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Language',true)?;
WriteString('0429','l_intl.nls');
CloseKey; //© Koosha System Software http://delphi-center.blogfa.com/
finally Free end;
end;
end;

شرمنده با دلفیه (vb ندارم تبدیل کنم) فقط فایلو کپی میکنه و چندتا کلید رجیستری ایجاد می کنه

سید حمید حق پرست
جمعه 12 خرداد 1391, 17:12 عصر
دوستان واقعا ممنون از توجه تون و شرمنده چند روز نبودم نتونستم بیام ازتون تشکر کنم


جناب حق پرست، شما منظورت اولیه یا دومی؟
ASedJavad (http://barnamenevis.org/member.php?60645-ASedJavad) گل برای هر دوتاش


شرمنده با دلفیه (vb ندارم تبدیل کنم) فقط فایلو کپی میکنه و چندتا کلید رجیستری ایجاد می کنه
ممنون از شما

دوستان گل برای اینکار که دوست گلمون arenaw (http://barnamenevis.org/member.php?203395-arenaw) گفتن :

تا جایی که من اطلاع دارم یه واسه کیبرد باید یه فایل dll رو جایزگنین یکی از فایل های ویندوز تا جای پ و ژ و اینا درست بشه
واسه برنامه های فارسی که روی ویندوز اینگلیسی هم نصب میشه و کاراکتر ها مشکل دارن باید این مسیرو بری و مقدار رو به Persian تغییر بدی

باید دقیقا چند فایل و کجا کپی بشه تا این مشکل حل شه . کپی کردنش با خودم چون راحت میشه تو ریسورس قرار داد و هنگام اجرا برنامه کپی کرد در مسیر مود نظر و ..
و بفرمایید فقط با کپی کردن فایلها این مشکل حل میشه؟

بازم خیلی معذرت میخوام نبودم . خیلی خیلی گلیید که اینقد توجه کردید واقعا ممنونم و خدا خیرتون بده


یا علی (ع)

سید حمید حق پرست
جمعه 12 خرداد 1391, 17:15 عصر
برای نصب زبان فارسی در ویندوز باید دوتا فایل ('KBDFA.dll' و 'l_intl.nls') کنار برنامه بذاری و کدهای زیرو اجرا کنی
procedure AddFarsiLNG;
var Vreg:TRegistry;
begin
//Copy Files
CopyFile('l_intl.nls','C:\windows\system32\l_intl. nls',true);
CopyFile('KBDFA.dll','C:\windows\system32\KBDFA.dl l',true);
//Create Registry Values
Vreg:=TRegistry.Create;

with Vreg do
begin //© Koosha System Software http://delphi-center.blogfa.com/
try
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Keyboard Layouts\00000429',true);
WriteString('Layout File','KBDFA.dll');
WriteString('Layout Text','Farsi');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Locale',true);
WriteString('d','1');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Language',true)?;
WriteString('0429','l_intl.nls');
CloseKey; //© Koosha System Software http://delphi-center.blogfa.com/
finally Free end;
end;
end;

شرمنده با دلفیه (vb ندارم تبدیل کنم) فقط فایلو کپی میکنه و چندتا کلید رجیستری ایجاد می کنه


ممنون از توجهتون . بعد از کپی کردن که درست نمیشه فکر کنم چون باید در قسمت زبان باید تنظیماتی انجام داد بعدا درسته دوستان ؟ . من میخوام بدون هیچ دخالت کاربر و رفتن به قسمت زبان اینکار انجام بشه . اگه راهی به نظرتون میرسه ممنون میشم بگید .


یا علی (ع)

SlowCode
جمعه 12 خرداد 1391, 18:18 عصر
سلام بعد از کلی جستجوی رجیستری اینا رو پیدا کردم، برو به این مسیر:
HKEY_USERS\S-1-5-21-3382640644-1134320624-3291000430-1000\Keyboard Layout\Preload
همون طور که میبینی چندتا مقدار با نام های 1 و 2 هستن که توی اونا هم یه عدد هست مثلا 429 یا 409 خوب حالا اگه میخوای بدونی اینا چی هستن برو به این آدرس:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Ke yboard Layouts
بعد توی این key همون عدد رو بگر پیدا کن، مثلا 00000429 همون زبان فارسی هست، که اسم کتابخونش هم KBDFA.DLL هست. حالا اگه توی اون مسیر اول اون مقدار رو درست کنی، زبان فارسی کیبورد نصب میشه. فقط کافیه سیستم رو ریستارت کنی تا تغییرات عمال بشه.

حالا موند انتخاب فارسی از قسمت advanced که انشالا اون رو هم پیدا میکنیم، فقط شما هم رجیستری رو بگردین.

سید حمید حق پرست
شنبه 13 خرداد 1391, 14:51 عصر
سلام بعد از کلی جستجوی رجیستری اینا رو پیدا کردم، برو به این مسیر:
HKEY_USERS\S-1-5-21-3382640644-1134320624-3291000430-1000\Keyboard Layout\Preload
همون طور که میبینی چندتا مقدار با نام های 1 و 2 هستن که توی اونا هم یه عدد هست مثلا 429 یا 409 خوب حالا اگه میخوای بدونی اینا چی هستن برو به این آدرس:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Ke yboard Layouts
بعد توی این key همون عدد رو بگر پیدا کن، مثلا 00000429 همون زبان فارسی هست، که اسم کتابخونش هم KBDFA.DLL هست. حالا اگه توی اون مسیر اول اون مقدار رو درست کنی، زبان فارسی کیبورد نصب میشه. فقط کافیه سیستم رو ریستارت کنی تا تغییرات عمال بشه.

حالا موند انتخاب فارسی از قسمت advanced که انشالا اون رو هم پیدا میکنیم، فقط شما هم رجیستری رو بگردین.


ممنون از شما دوست عزیز . اگه تو رجستری باشه که دیگه کد جناب sam7sam7 (http://barnamenevis.org/member.php?231262-sam7sam7) درسته و مسیرها در کد هست :
procedure AddFarsiLNG;
var Vreg:TRegistry;
begin
//Copy Files
CopyFile('l_intl.nls','C:\windows\system32\l_intl. nls',true);
CopyFile('KBDFA.dll','C:\windows\system32\KBDFA.dl l',true);
//Create Registry Values
Vreg:=TRegistry.Create;

with Vreg do
begin //© Koosha System Software <a href="http://delphi-center.blogfa.com/" target="_blank">http://delphi-center.blogfa.com/</a>
try
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Keyboard Layouts\00000429',true);
WriteString('Layout File','KBDFA.dll');
WriteString('Layout Text','Farsi');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Locale',true);
WriteString('d','1');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Language',true)?;
WriteString('0429','l_intl.nls');
CloseKey; //© Koosha System Software <a href="http://delphi-center.blogfa.com/" target="_blank">http://delphi-center.blogfa.com/</a>
finally Free end;
end;
end;



باز هم ممنون

یا علی (ع)

SlowCode
شنبه 13 خرداد 1391, 15:30 عصر
اوه ببخشید اصلا پست ایشون رو نخونده بودم، پس مشکلتون کجاست؟