gpt4 book ai didi

c# - 设置 CurrentUICulture 以便它使用 Resources.resx

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:21 28 4
gpt4 key购买 nike

我正在一个小型测试 WPF 应用程序中进行本地化,并且想要英语和法语。我创建了 Resources.en-CA.resx 和 Resources.fr-CA.resx。

当我的测试应用程序启动时,我有一个启动窗口,其中有一个下拉菜单可供选择英语或法语。当用户单击“确定”时,将调用一个方法来根据所选语言切换文化,然后加载另一个窗口,该窗口将以所选语言显示一些资源字符串。

switch (selectedLanguage)
{
case "English":
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-CA");
break;

case "French":
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
break;
}

用户可以关闭然后关闭此窗口并从启动窗口中选择一种不同的语言,然后单击“确定”再次显示该窗口,但使用的是他们选择的新语言。

这是可行的,但我还有一个 Resources.resx,它基本上只是 Resources.en-CA.resx 的副本。我想知道我是否可以摆脱 Resources.en-CA.resx,如果可以,我应该将 CurrentUICulture 设置为什么,以便它在选择英语时使用 Resources.resx 中的值。

switch (selectedLanguage)
{
case "English":
//What would I do here?
break;

case "French":
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
break;
}

我正在使用代码访问资源字符串

Properties.Resources.SomeLocalizedString

最佳答案

是的,您可以根据需要删除 Resources.en-CA.resx 文件。您无需更改任何内容,因为您当前的代码将继续以相同的方式工作。

.Net 中的本地化是通过从更具体到更通用的回退功能实现的。如果它找不到指定语言和本地的资源文件(例如 Resources.fr-CA.resx ),它会单独查找该语言的资源文件(例如 Resources.fr.resx ),如果找不到,则它使用默认资源文件(例如 Resources.resx)。

有关详细信息,请参阅 Hierarchical Organization of Resources for Localization .

关于c# - 设置 CurrentUICulture 以便它使用 Resources.resx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44751907/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com