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

Phạm Hoàng Tuấn viết 19:09 ngày 30/09/2018

Mình ngĩ bạn nên dùng mẫu Singleton để thiết kế 1 class Manage 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é !

Bài liên quan
0