簡體   English   中英

未使用默認資源文件

[英]Default resource file not being used

這是我第一次嘗試全球化的Windows窗體,因此我以自己的語言創建了窗體,並將屬性Localizable設置為true,默認情況下將Language設置為Language ,默認情況下,所有內容均在默認資源文件中生成,這很好。 之后,我添加了一個名為FormName.en.resx新資源文件,並在此處重命名了一些東西以測試其工作方式,但是現在每次運行appliction時,它使用的是我添加的英文文件,而不是默認的FormName.resx文件。我刪除了英語資源文件,一切恢復正常,我錯過了什么嗎?

首先,我認為是Windows引起的,但我的語言設置正確,我什至嘗試手動更改Thread.CurrentThread.CurrentCulture ,但它始終保持英語。

默認情況下,用於確定資源語言的UI語言綁定到OS的語言包。 如果您正在運行英文Windows,則您的應用程序將使用英文資源。 如果要強制使用其他語言,請設置Thread.CurrentThread.CurrentUICulture屬性。 Thread.CurrentThread.CurrentCulture影響日期/時間/數字的格式。

好吧,我認為這是一種骯臟的方式,但這是有人碰到相同的問題:

 private void ChangeLanguage(string lang)
        {       
            Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);

            //YourFormType should be the name of your form
            ComponentResourceManager resources = new ComponentResourceManager(typeof(YourFormType));
            resources.ApplyResources(this, "$this");

            foreach (Control control in this.Controls)
            {
                resources.ApplyResources(control , control.Name);
            }
        }

如果有人有更好的解決方案,請發布它,我會嘗試的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM