停止C#语言的国际化

3

我这里有一个使用C# .NET编写的程序,其中有一行用于加载字符串:

m_resource_manager = new ResourceManager("Foo.FooStrings", Assembly.GetExecutingAssembly());

我曾经被建议过。现在,我收到了一个请求,要求停止进行这些翻译,并改为全部使用英语。我希望尽可能地减少影响并可逆转。

我想更改此行代码,以便始终加载英文字符串表,但我不知道应该指定什么,或者这是否是一个好方法。

这是坚持使用英语的好方法吗?如果是,我应该如何编写它?如果不是,我应该做些什么?


1
只需排除其他语言的卫星程序集即可吗? - Pierre-Alain Vigeant
你怎么不拒绝做这件事呢?这就是我会做的。为什么要移除一个完好无损、正常工作的功能,而且没有任何好处呢?为什么要这样排斥其他语言的使用者呢?这根本就没有意义。 - Timwi
@Timwi:因为请求来自唯一的非英语使用者。这是严格内部软件,不在公司外分发。 - David Thornley
2个回答

5
您可以在此字符串之前指定文化(culture):
#if ENGLISH_ONLY
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
#endif

如果你使用ENGLISH_ONLY符号编译汇编代码,那么所有的加载字符串都会是英文。


1
这会影响其他东西吗,还是只有字符串翻译? - David Thornley
它会影响所有资源的翻译以及日期、货币等不同的格式(例如,当您调用 DateTime.Now.ToString() 时)。 - whyleee
在执行“new ResourceManager”行后,我能否将“CurrentUICulture”和“CurrentCulture”重置回它们原来的状态? - David Thornley

1

你可以不把所有的resx文件都删除吗?只保留默认的英文文件就好了。


我可以,但是我的老板更愿意保留一切。 - David Thornley
@David Thornley 我认为你被whyleee的建议卡住了,顺便说一句,这是一个好建议,我认为你也可以根据应用程序或web.config设置它,具体取决于是否在winforms或web应用中。 - Pharabus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接