PDA

View Full Version : چطوری میشه توی TextBox فارسی نوشت



alirezador
شنبه 13 اسفند 1384, 19:02 عصر
سلام چطوری میشه در یک textbox فارسی نوشت بدون اینکه زبان windows را عوض کنیم و یا ALT+Shift را نزنیم یعنی خوش کد کلید کیبورد را بشناسه و به جای حروف انگلیسی فارسی بنویسه حتی اگه ویندوز فونت فارسی نداشته باشه و یا اصلا فارسی نباشه
این که را با javascript تو web میکردم ولی و c# بلد نیستم لطفا راهنماییم کنید

Mega7000
شنبه 13 اسفند 1384, 23:50 عصر
سلام
می شه بگین توی جاوا چطور این کارو می کردین؟
ممنون

HO457
شنبه 13 اسفند 1384, 23:56 عصر
فکر نکنم بشه تو Windows Application‌ اینکار رو کرد. مگر اینکه از یک هسته مرکزی برای فارسی سازی برنامت استفاده کنی،‌ همونکاری رو که شتاب انجام میده.
مگا جان اینم کد JavaScript برای فارسی کردن توی وب. راستش من خودم استفاده نکردم تو کارام. ولی کسای دیگه استفاده کردن گفتن جواب داده. کد توسط عباس شکراللهی نوشته شده. برای حفظ کپی رایت گفتم:


var lang = 1; // 1: Farsi, 0: English

// Farsi keyboard map based on ISIRI-2901

var farsikey = [
0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 0x064D, 0x0625, 0x0623,
0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
];

// on Alt+Shift, switch language
function FKeyDown()
{
window.alert('hello');
if (window.event.shiftKey && window.event.altKey) {
if (lang == 0) {
lang = 1;
window.defaultStatus = "Farsi Mode";
}
else {
lang = 0;
window.defaultStatus = "English Mode";
}
return false;
}
return true;
}

// change the Farsi

function FKeyPress()
{
var key = window.event.keyCode;
// Avoid processing if control or higher than ASCII (i.e., in Arabic Windows)
if (key < 0x0020 || key >= 0x00FF)
return;
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
{
if (key==96)
{
window.event.keyCode = farsikey[109 - 0x0020];
}
else
{
if (key==92)
{
window.event.keyCode = farsikey[67 - 0x0020];
}
else
{
window.event.keyCode = farsikey[key - 0x0020];
}
}
}
}
return true;
}

anubis_ir
یک شنبه 14 اسفند 1384, 07:31 صبح
برای فارسی کردن دریافت ورودی در سی شارپ به صورت استاندارد:

private void Form1_Load(object sender, System.EventArgs e)
{
System.Globalization.CultureInfo myCulture = new System.Globalization.CultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(myCulture) ;
}

alirezador
یک شنبه 14 اسفند 1384, 11:29 صبح
سلام HO457 جان من کد شما را خواستم تو c# کپی کنم ولی ظاهرا این کد ماله delphi هستش اگه میشه کد رو class کنی ممنون میشم
در ضمن هم از شما و هم anubis_ir جان خیلی ممنونم که محبت کردین و جواب دادین

Mehrafrooz
یک شنبه 14 اسفند 1384, 18:26 عصر
این کد زمانی کار می کنه که فارسی قبلا روی ویندوز نصب شده باشده


using System.Globalization;



public void FarsiKeyboard()
{
CultureInfo info1 = new CultureInfo("fa-IR");
info1 = InputLanguage.CurrentInputLanguage.Culture;
info1 = new CultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(info1);
}



public void EnglishKeyboard()
{
CultureInfo info2 = new CultureInfo("en-US");
info2 = InputLanguage.CurrentInputLanguage.Culture;
info2 = new CultureInfo("en-US");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(info2);
}

برای فارسی کردن و انگلیسی کردن کیبورد.

HO457
یک شنبه 14 اسفند 1384, 18:29 عصر
علیرضا جان کدی که من گذاشتم Javascript هستش نه دلفی میتونی توی صفحه هات ازش استفاده کنی

alirezador
یک شنبه 14 اسفند 1384, 19:56 عصر
آقای احمید متشکرم از لطفی که نسبت به من داشتید. و از تمامی دوستان هم سپاس گزاری میکنم ولی دوستان این را در نظر داشته باشید که شاید در سیستمی به هر دلیلی font فارسی نصب نشده باشه ولی آیا این مسئله مثل مثالی که آقای احمدی در js گفته بودن در c# نداره یعنی کد کلید صفحه کلید را بدست اورد و با استفاده از کد خاصی آن را تبدیل کرد؟

Mehrafrooz
یک شنبه 14 اسفند 1384, 21:04 عصر
فونت فارسی رو می تونید خودتون به فونتهای ویندوز اضافه کنید . اما در مورد فارسی نویسی شاید بشه کاری کرد که قبل از نصب برنامه ، کیبورد فارسی هم نصب بشه مثل همان کاری که در کنترل پانل ویندوز انجام میدیم فقط باید اینها رو استخراج کرد و قبل از نصب برنامه اصلی این فونتها و زبان فارسی نصب بشه . اما در مورد این کدها من اطلاعاتی ندارم .
موفق باشید .

ma30ih
سه شنبه 16 اسفند 1384, 00:40 صبح
InputLanguage .CurrentInputLanguage =InputLanguage .InstalledInputLanguages [1];

امیدوارم درست بشه...

mohsenhs82
دوشنبه 22 آبان 1385, 12:28 عصر
خیلی ازتون ممنونم