30/09/2018, 17:08
Đa ngôn ngữ trong C#
Mình có 2 Form trong chương trình: Alarm và Form1, mình đặt nút chuyển ngôn ngữ Anh và Việt ở Form1 và sử dụng cách xài Resources để chuyển đổi ngôn ngữ như sau:
CultureInfo culture;
.........................................
private void SetLanguage(string cultureName)
{
culture = CultureInfo.CreateSpecificCulture(cultureName);
ResourceManager rm = new ResourceManager("DongHoBaoThuc.Lang.MyResources", typeof(Form1).Assembly);
grpStyle.Text = rm.GetString("grpStyle", culture);
radEnglish.Text = rm.GetString("english", culture);
radVietnamese.Text = rm.GetString("vietnamese", culture);
button1.Text = rm.GetString("button1", culture);
btnStopAlarm.Text = rm.GetString("btnStopAlarm", culture);
btnChangeRinTones.Text = rm.GetString("btnChangeRinTones", culture);
clock12 = rm.GetString("clock12", culture);
clock24 = rm.GetString("clock24", culture);
}
private void radEnglish_CheckedChanged(object sender, EventArgs e)
{
if (radEnglish.Checked)
{
SetLanguage("en-US");
}
}
private void radVietnamese_CheckedChanged(object sender, EventArgs e)
{
if (radVietnamese.Checked)
{
SetLanguage("vi-VN");
}
}
Bây giờ mình không biết làm sao để form Alarm chuyển qua ngôn ngữ mình đã chọn ở Form1, ví dụ nếu có phát sinh thêm 1 số form khác thì làm cách nào? Mong các bạn giúp đỡ. Thanks
Đây là project mình đang làm: https://www.mediafire.com/?6e106vs7xgyd330
Bài liên quan
Mình ngĩ bạn nên dùng mẫu
Singleton
để thiết kế 1 classManage Resource
, lớp này sẽ trả về ngôn ngữ hiện tại đang được chọn, dùng chung cho chương trình của bạn.Đây là link ví dụ gần giống với yêu cầu của bạn, bạn tham khảo thử xem.
http://www.kenbon.net/index.php?cid=programmer&sub=design_patterns&itm=Singleton_Pattern
có gì chưa hiểu về mẫu này bạn cứ post lên, nhưng trước hết bạn fai đọc kỹ link mình gửi nhé !