我的c#代码中有resources.resx
,其中填充了一些字符串:
Text1,"Some Text"
我可以通过
在运行时调用它Properties.Resources.Text1
导致
"Some Text"
现在我想让Text1有一个不同的输出(例如另一种语言或其他东西)
以便Properties.Resources.Text1
生成"Different Text"
。
我怎样才能实现这个目标?
EDIT1:我发现this但我正在寻找与资源文件不同的方法。
答案 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();
根据信息更新了问题