0

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

Text1,"Some Text" 

我可以在运行时调用它

Properties.Resources.Text1

这导致

"Some Text"

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

我怎样才能做到这一点?

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

4

2 回答 2

1

恐怕您必须为其他文化添加另一个资源文件。看看这个线程 如何在 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);
于 2013-02-01T10:15:13.553 回答
1

如果要使用不同的资源文件,可以使用 ResourceManager:

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();

根据信息更新问题

于 2013-02-01T10:20:20.333 回答