c# - .NET Localization - 如何设置语言?

标签 c# .net winforms localization

我已将我的 ExportForm 本地化为德语 (de) 和俄语 (ru),如下所示:

如果我的 CultureInfo 是德语 (Austrian-de-AT) 那么一切正常,我看到翻译成德语的格式:

string specCult = "de-AT";
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult);

但我看到了带有俄语 (ru-RU) CultureInfo 的英语 UI

string specCult = "ru-RU";
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult);

虽然如果我使用“ru”而不是“ru-RU”来创建 CultureInfo 它会起作用:

string specCult = "ru";
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult);

你能帮我看看问题出在哪里吗?或者请指出我调查问题的方向。

最佳答案

我已经确定问题所在:ru-RU 在我的主要项目程序集设置中被选为中性语言。

MSDN: NeutralResourcesLanguage 属性通知 ResourceManager 用于显示程序集的中性区域性资源的语言。当它在与中性资源语言相同的文化中查找资源时,ResourceManager 会自动使用位于主程序集中的资源。它执行此操作而不是搜索具有当前线程的当前用户界面区域性的附属程序集。这提高了您加载的第一个资源的查找性能,并且可以减少您的工作集。

http://msdn.microsoft.com/en-us/library/bb385967.aspx

关于c# - .NET Localization - 如何设置语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651517/

相关文章:

c# - 未知服务器标记 "ajaxToolkit:HtmlEditorExtender"

c# - 这两种事务处理方式有什么区别

c# Focus() 似乎触发了 Leave() 方法

.net - 使用 .NET 访问 Windows 注册表?

c# - SQL Server 中的货币

c# - 错误 - 具有多个数据库连接的 LINQ/TransactionScope

c# - 如何在大字符串中查找重复的短语

c# mysql AddWithValue unicode 收藏

javascript - 如何在代码隐藏中访问 session 变量

c# - 如果该方法没有自己的 XML 注释,则在该方法实现的接口(interface)上获取 Intellisense