C# windows窗体c的本地化#

C# windows窗体c的本地化#,c#,C#,我见过人们使用资源本地化他们的表单。将文本数据放在资源文件中,并在windows窗体应用程序从资源文件获取时显示这些文本数据。但我的要求是不同的,当我的应用程序将在任何pc上运行,并且pc语言设置为德语或法语时,我的应用程序的所有控制标题都将以该语言显示。我该怎么做…我需要写什么代码。我需要编写最少的代码来实现它 static int Main( string[] argv ) { CultureInfo ci = CultureInfo.InstalledUICulture ; Consol

我见过人们使用资源本地化他们的表单。将文本数据放在资源文件中,并在windows窗体应用程序从资源文件获取时显示这些文本数据。但我的要求是不同的,当我的应用程序将在任何pc上运行,并且pc语言设置为德语或法语时,我的应用程序的所有控制标题都将以该语言显示。我该怎么做…我需要写什么代码。我需要编写最少的代码来实现它

static int Main( string[] argv )
{
CultureInfo ci = CultureInfo.InstalledUICulture ;

Console.WriteLine("Default Language Info:" ) ;
Console.WriteLine("* Name: {0}"                    , ci.Name ) ;
Console.WriteLine("* Display Name: {0}"            , ci.DisplayName ) ;
Console.WriteLine("* English Name: {0}"            , ci.EnglishName ) ;
Console.WriteLine("* 2-letter ISO Name: {0}"       , ci.TwoLetterISOLanguageName ) ;
Console.WriteLine("* 3-letter ISO Name: {0}"       , ci.ThreeLetterISOLanguageName ) ;
Console.WriteLine("* 3-letter Win32 API Name: {0}" ,    ci.ThreeLetterWindowsLanguageName   
) ;

return 0 ;
}

通过上述方法,我可以获得操作系统的当前语言集。请详细讨论这个问题。谢谢

Visual Studio包含本地化功能。您可以使用默认语言(例如英语)设计表单,然后在表单的属性中,可以将“Localizable”属性设置为
true
,并选择另一种语言进行翻译

选择语言后,将标题更改为相应的语言。然后选择另一种语言,更改标题等

请注意:仅在默认语言中添加新控件或删除控件-否则该控件将不会显示用于其他翻译

然后由.NET framework选择要显示的语言

这同样适用于资源文件-要本地化.resx文件,请创建一个副本并重命名它以匹配区域设置(例如:
resources.DE.resx
),然后将其添加到项目中


正如Daryal在评论中所说,可以找到更多信息。

建议使用资源进行本地化

本演练可能对您有所帮助:

VisualStudio项目系统为本地化Windows窗体应用程序提供了大量支持。使用Visual Studio开发环境生成资源文件有两种方法:

  • 让项目系统为可本地化的UI元素(如表单上的文本和图像)生成资源文件。然后将资源文件内置到附属程序集中。这些被称为基于表单的资源
  • 添加资源文件模板,然后使用XML设计器编辑模板。执行后一种操作的原因是生成对话框和错误消息中显示的可本地化字符串。然后必须编写代码来访问这些资源。这些被称为项目资源
  • 通常,对于Windows窗体应用程序中特定于窗体的所有资源,都应使用基于窗体的资源。您应该将项目资源用于所有非基于表单的用户界面字符串和图像,例如错误消息
本演练主题演示单个Windows应用程序项目中的两个进程


请澄清为什么加载基于PC语言的正确目标语言的资源文件不符合您的要求。请参阅一个非常一般的问题,而不是解决特定问题。您可以在下面的文档中找到windows窗体本地化的文档,我们从未使用过这种方法,因为每个窗体的每种语言的每一个字符串都应该重复。但是,这是小型应用程序本地化的最简单方法+1实际上,这也是一种非常舒适的方法!我们在一个中等规模的项目中使用了它,它运行得非常好。