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

时间:2013-02-01 10:01:54

标签: c# .net visual-studio properties

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

Text1,"Some Text" 

我可以通过

在运行时调用它
Properties.Resources.Text1

导致

"Some Text"

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

我怎样才能实现这个目标?

EDIT1:我发现this但我正在寻找与资源文件不同的方法。

2 个答案:

答案 0 :(得分:1)

我担心你必须为其他文化添加另一个资源文件。只是看看这个帖子 How to use localization in C#

参考评论: 获取当前的cultureinfo并加载如下资源:

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

答案 1 :(得分: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();

根据信息更新了问题