PDA

View Full Version : سوال: اگر بخواهیم زبان سیستم را در Regional Language تغییر دهیم نه در Keyboard چه کار باید بکنیم؟



parsester
یک شنبه 24 مهر 1390, 15:45 عصر
من در پروژه ام از یک کلاس Date استفاده کرده ام که زمانی که زبان سیستم رد Regional Language در کنترل پنل English United States می باشد درست عمل می کند ولی زمانی که زبان سیستم Farsi باشد با دچار مشکل شده و کلاس مورد نظر باعث اجرا نشدن پروژه می شود...
از طرفی به خاطر استفاده کردن از یک نرم افزار حسابداری در همان سیستم مجبور هستم سیستم را در حالت Farsi قرار دهم...
چطور میتونم در پروژه ام کدی رو قرار بدم که زبان سیستم رو در Regional Language تغییر دهد؟
آیا کلاس Date دیگری برای بدست آوردن تاریخ خورشیدی وجود داره که این مشکل رو نداشته باشه و بتونم از اون استفاده کنم؟

ferankyy
دوشنبه 25 مهر 1390, 13:31 عصر
با این کلاس میشه یه کارایی کرد
System.Globalization.CultureInfo()

hosaini
دوشنبه 25 مهر 1390, 21:08 عصر
System.Globalization.

CultureInfo Language = new System.Globalization.CultureInfo("fa-IR");



InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Language);

hosaini
دوشنبه 25 مهر 1390, 21:12 عصر
اینم کلاسی که خودم ساختم شاید به دردت بخوره


public static bool validDateTime(int year, int month, int day)//بررسی صحّت تاریخ جلالی

{



if ((month > 12) || (month < 1) || (day > 31) || (day < 1))

{



return (false);

}



if ((month > 6) && (day > 30))

{



return (false);

}



if ((month == 12) && (day > 29))

{

System.Globalization.

PersianCalendar PCalPublic = new System.Globalization.PersianCalendar();



DateTime firstDayofNextYear = PCalPublic.ToDateTime(year + 1, 1, 1, 0, 0, 0, 0);



DateTime posibleLastDayofCurrentYear = PCalPublic.ToDateTime(year, 12, 29, 0, 0, 0, 0);



TimeSpan dateTimeBetween2DateTimes = firstDayofNextYear - posibleLastDayofCurrentYear;



int daysBetween2DateTimes = dateTimeBetween2DateTimes.Days;



if ((daysBetween2DateTimes + 29 - 1) != day)

{



return (false);

}

}



return (true);

}

akhlaghi_mohammad
یک شنبه 10 اردیبهشت 1391, 17:00 عصر
از طرفی به خاطر استفاده کردن از یک نرم افزار حسابداری در همان سیستم مجبور هستم سیستم را در حالت Farsi قرار دهم...
چطور میتونم در پروژه ام کدی رو قرار بدم که زبان سیستم رو در Regional Language تغییر دهد؟



با این کلاس میشه یه کارایی کرد
System.Globalization.

CultureInfo Language = new System.Globalization.CultureInfo("fa-IR");



InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Language);


من دقیقا همین مشکل رو دارم و این راه حلی که پیشنهاد شده دقیقا زبان کیبورد رو تغییر می ده نه از داخل Regional Language Option .چون من دقیقا امتحان کردم یعنی وقتی با دستورات پیشنهادی بالا برنامه رو ران کنی می بینی که تو Regional Options تغییری حاصل نشده...
تو رو خدا یه عزیزی بگه چه جوری میشه کاری کرد که وقتی برنامه ران شد Regional Options از حالت فارسی به انگلیسی تغییر کنه و وقتی برنامه بسته شد به حالت فارسی برگرده....

ya30ien2
یک شنبه 10 اردیبهشت 1391, 17:53 عصر
توی رویداد load فورم برای فارسی قرار بده و در رویداد closing فورم دستور اینگلیسی

Hossenbor
یک شنبه 10 اردیبهشت 1391, 18:17 عصر
منظورتون تغییر زبان نوشتاری پیش فرض ویندوزه؟

akhlaghi_mohammad
یک شنبه 10 اردیبهشت 1391, 18:52 عصر
منظورتون تغییر زبان نوشتاری پیش فرض ویندوزه؟
نه Hossenbor عزیز...منظورم تغییر خاصیت هایی از قبیل اعداد و ... از فارسی به انگلیسی تو برنامس که با تغییر فارسی به انگلیسی RegionalOptions حاصل میشه.
چون برنامه من باید طوری باشه که اعداد تو گرید ویو ها و جداول انگلیسی نمایش داده بشه ، ولی چون از طرفی به خاطر استفاده کردن از یک نرم افزار حسابداری تو همون سیستم مجبورم سیستمو در حالت Farsi قرار بدم ، یه جوری باید RegionalOptions بعد از بسته شدن نرم افزار فارسی بشه.

Mahmoud Zaad
یک شنبه 10 اردیبهشت 1391, 20:08 عصر
سلام اینجا (http://stackoverflow.com/questions/9530350/changing-the-region-and-language-os-setting-programmatically)رو ببینید.