簡體   English   中英

如何更改Resources.resw?

[英]How can I change the Resources.resw?

我正在用C#和Xaml編寫Windows 8應用程序。

目前,我有兩個資源文件。

- 本地

---- de-DE

------ Resources.resw

---- en-ZH

------ Resources.resw

我正在像這樣加載Textparts:

private ResourceLoader _resources = new ResourceLoader();

_resources.GetString("Menu_Contacts")

現在這是我的問題,如何在運行時更改資源?

最簡單的方法是設置PrimaryLanguageOverride屬性:

ApplicationLanguages.PrimaryLanguageOverride = "de-DE";

請注意,這將更改應用程序的語言,但是當前已加載的屏幕不會刷新。 要刷新當前屏幕上的文本,可以實現以下事件處理程序:

core.ResourceManager.Current.DefaultContext.QualifierValues.MapChanged 
        += async (s, m) =>
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                settingsLanguageLabel.Text = core.ResourceManager.Current.MainResourceMap.GetValue("Resources/SettingsLanguageLabel/Text").ValueAsString;
                settingsRestartLabel.Text = core.ResourceManager.Current.MainResourceMap.GetValue("Resources/SettingsRestartLabel/Text").ValueAsString;
            });
        };

您可以直接訪問資源密鑰:

Properties.Resources.myResourceKey = "new value";

或者您可以重寫密鑰:

resourceWriter = new ResXResourceWriter(Server.MapPath("/App_GlobalResources/Resource.resx"));
 foreach (var cnes_ in _ResList)
 {
    resourceWriter.AddResource(cnes_.Key, cnes_.Value);
 }
 resourceWriter.Close();

暫無
暫無

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

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