PDA

View Full Version : اجرای دستورات با تغییر زبان



RANGO1
جمعه 14 بهمن 1390, 16:41 عصر
با سلام
چطوری میتونیم با تغییر زبان برنامه مثلا با زدن alt+shift موجب اجرای دستوراتی خاص بشیم
اگه زبان فارسی بود
{ این دستورات اجرا شن}
{اگه زبان انگلیسی بود این دستورات اجرا شن}

flash118
جمعه 14 بهمن 1390, 17:26 عصر
با سلام بفرمایید دوست عزیز خدمت شما:
private void Form1_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e)
{
if(e.Culture.Name.ToLower()=="fa-ir")
MessageBox.Show("کدهایی که میخواهید در هنگام فارسی بودن انجام شود اینجا قرار دهید ");
else
MessageBox.Show("کدهایی که میخواهید در هنگام انگلیسی بودن انجام شود اینجا قرار دهید ");

}

البته با فرض این که شما درسیستمتان داری دو زبان انگلیسی و فارسی تعیین نمودید

RANGO1
جمعه 14 بهمن 1390, 18:30 عصر
آقا مرسی ولی اصلا اجرا نشد.
یعنی تو همون قسمت کد رو گذاشتم ولی اجرا نشد.

کدا رو یکم تغییر دادم و اوردم توی textchange
if (System.Globalization.CultureInfo.CurrentCulture.N ame.ToLower() == "fa-ir")
{
MessageBox.Show("کدهایی که میخواهید در هنگام فارسی بودن انجام شود اینجا قرار دهید ");
}
else
{
MessageBox.Show("کدهایی که میخواهید در هنگام انگلیسی بودن انجام شود اینجا قرار دهید ");
}
ولی مسئله اینکه این موقع تغییر زبان کار نمیکنه.یعنی اگه زبان فارسی تو لیست زبانهای پیش فرض باشه اجرا میشه

shadi khanum
جمعه 14 بهمن 1390, 19:26 عصر
میتونی تو رویداد keydown بگی اگه alt + shift زده شده بود حالا برو چک کن ببین currentLanguage چیه و بر اساسش کدهایی که میخوای رو بنویس..
واسه اینکه چک کنی الان زبانت فارسی یا انگلیسی هم اگه این مقدار
System.Windows.Forms.InputLanguage.CurrentInputLan guage.Culture.Name
برابر fa-IR بود یعنی زبان نوشتاری فارسی و اگه برابر en-US بود یعنی انگلیسی..
موفق باشی

flash118
جمعه 14 بهمن 1390, 21:13 عصر
با سلام دوست عزیز کدتون چی هست که اجرا نمیشه من که تست کردم به راحتی کار میکرد در ضمن طبیعی هست تو رویداد textchange کارنکنه چون اون رویدادی که من توش کدها رو نوشتم اول رویداد رو بررسی میکنه و بعد زبان رو تغییر میده یعنی درست همون چیزی که شما میخواهید اگه فرض کنیم تو textchange بزارید باید مدام بررسی بشه که این بهینه نیست شما هدفتون فقط زمانی هست که alt+shiftزده بشه کدها اجرا بشه لطفا بررسی بیشتری کنید اگه نشد کدهاتون رو قرار بدید من بررسی کنم راهکار همون هست که من قرار دادم خدمتتون موفق باشید

RANGO1
شنبه 15 بهمن 1390, 08:02 صبح
سلام
درسته کار میکنن ولی با کیبرد نه
مثلا من الان از این کد برای تغییر زبان استفاده میکنم.
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));
الان وقتی این کد اجرا میشه کدای قبلی هم اجرا میشن .ولی با تغییر زبان از طریق کیبرد اتفاقی نمیوفته.(تو ویندوز ایکس پی)

flash118
شنبه 15 بهمن 1390, 09:40 صبح
ببنید دوست عزیز من منظورتون رو نگرفتم این کد اجرا میشه و کدهای قبلی هم اجرا میشن چیه؟
اما انچه که من حدس میزنم شاید شما می خواهید تو زمانی که زبان به انگلیسی تغییر یافت بازم اتوماتیک فارسی بشه اگه منظورتون این هست اینجوری باید بکنید :
private void Form1_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e)
{
if(e.Culture.Name.ToLower()=="fa-ir")
MessageBox.Show("کدهایی که میخواهید در هنگام فارسی بودن انجام شود اینجا قرار دهید ");
else
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));

}