Svi*_*ish 20 .net c# resources localization
我有一个资源程序集,其中包含各种语言的翻译文本.项目类似于:
我可以使用这样的静态属性来获取文本:
var value = FooBar.Hello;
Run Code Online (Sandbox Code Playgroud)
或者使用这样的反射:
var value = resourceAssembly
.GetType("Namespace.FooBar")
.GetProperty("Hello")
.GetValue(null, null) as string;
Run Code Online (Sandbox Code Playgroud)
两种方式都将获得属于当前线程的当前UI文化的值.这很好,完全是我通常喜欢的.
但是,如果我明确地想要瑞典的价值,而不必改变UI文化,我能做些什么吗?
Kon*_*man 19
您可以手动更改Culture
Visual Studio生成的FooBar类的属性.或者,如果您直接使用ResourceManager类,则可以使用GetString的重载,该重载将所需的区域性作为参数.
小智 15
请尝试以下代码.它至少对我来说很好:
FooBar.ResourceManager.GetString("Hello", CultureInfo.GetCultureInfo("sv-SE"))
Run Code Online (Sandbox Code Playgroud)