在运行时在嵌入式/链接资源之间添加/切换

本文关键字:添加 切换 之间 链接 运行时 嵌入式 资源 | 更新日期: 2023-09-27 17:56:53

我的 c# 代码中有resources.resx,并填充了一些字符串:

Text1,"Some Text" 

我可以在运行期间通过以下方式调用它

Properties.Resources.Text1

这导致

"Some Text"

现在我想让 Text1 有一个不同的输出(例如另一种语言或其他语言)这样Properties.Resources.Text1会导致"Different Text".

我怎样才能做到这一点?

编辑1:我发现了这个,但我正在寻找一种不同的资源文件方法。

在运行时在嵌入式/链接资源之间添加/切换

如果要

使用不同的资源文件,可以使用资源管理器:

ResourceManager rm;
if (Configuration.Default.Culture == "en-US")
    rm = new ResourceManager(typeof(Resource1));
else
    // ...
String label = rm.GetString("Text1");

在"用户设置"中保存区域性,添加配置文件并定义用户变量。

Configuration.Default.Culture= "en-US";
Configuration.Default.Save();

根据信息更新问题

恐怕您必须为其他区域性添加另一个资源文件。 只需查看此线程如何在 C# 中使用本地化

参考评论:获取当前区域性信息并加载资源,如下所示:

Thread.CurrentThread.CurrentCulture.ClearCachedData();
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
if(currentCulture.Name == "en-US")
   Console.WriteLine(resources.Text1);
else if if(currentCulture.Name == "ja-JP")
   Console.WriteLine(resourcesJapan.Text1);