【问题标题】:Localization of windows form c#windows form c#的本地化
【发布时间】:2014-03-26 07:15:41
【问题描述】:

我看到人们使用资源本地化他们的表单。将文本数据放在资源文件中,并在从资源文件中获取的 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 ;
}

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

【问题讨论】:

  • 请说明为什么根据 PC 语言加载正确目标语言的资源文件不符合您的要求。
  • here
  • 一个非常笼统的问题,没有解决具体问题。您可以在以下msdn page 中找到有关 windows 窗体本地化的文档

标签: c#


【解决方案1】:

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

选择语言后,将字幕更改为相应的语言。然后选择另一种语言、更改字幕等。

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

然后由 .NET 框架选择要显示的语言。

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

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

【讨论】:

  • 我们从未使用过这种方法,因为每种形式的每种语言的每个字符串都应该重复。但是,是的,这是小型应用程序本地化的最简单方法 +1
  • 其实也是一种很舒服的方式!我们已经将它用于一个项目(中等规模)并且效果很好。
【解决方案2】:

推荐使用资源进行本地化。

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

Walkthrough: Localizing Windows Forms

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

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

本演练主题演示了单个 Windows 应用程序项目中的这两个过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多