在C#应用程序中更改“(默认)”ResX语言

我在C#中制作了一个应用程序,其中包含很多表单和其他内容。 我想本地化它,所以我在VS中使用了集成的本地化功能。 该应用程序最初是用法文(因为我)与英文翻译RESXes,但现在Codeplex与其他一些不会说法语的开发人员在Codeplex上,我想更改应用程序中的“默认”语言和RESX文件所以他们可以在不读法语的情况下翻译成其他语言 因为当你在VS Form Designer中选择另一种语言时,它会显示默认语言(这里是法语)。 我试图重命名所有的文件,但问题是所有的表单属性都存储在默认的RESX中,所以如果我重命名,它将打破所有的东西。 是否可以将默认语言更改为英语?

编辑:我想我需要更精确。 该应用程序最初是用法语。 然后我用英语进行本地化。 现在有一个MainWindow.resx,其中包含表单属性+原始法语本地化和MainWindow.en-US.resx包含只有英语本地化。 因此,如果在设计器中,在“语言”中选择“(默认)”,它向我显示MainWindow.resx FRENCH,如果我想翻译,它会显示法文文本。 为了使其他开发人员的翻译更容易,我想要进行MainWindow.resx英文本地化并创建一个单独的MainWindow.fr-FR.resx。 我也尝试在AssemblyInfo.cs中改变“中性语言”,没有效果。


您可以通过代码更改应用程序中的CurrentCulture和CurrentUICulture。 这与用于在运行时更改应用程序语言的方法相同。

看看这个代码:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

希望能帮助到你。


虽然您可以在文件系统中进行重命名以实现中性文化/资源更改,但您还需要更新项目文件,这很麻烦。 我发现最简单的方法是通过名为ResXManager的Visual Studio扩展来完成此操作。

详细步骤:

1.运行并配置ResXManager

在VS中:工具 - > ResXManager。

  • 选择配置选项卡(下面)
  • 禁用选项“确认添加新的资源文件”。 否则,您将不得不稍后点击每个文件来接受其创建。
  • 设置中性资源语言,以便显示正确的标志以便观看乐趣。
  • 切换回主标签页,您可以在其中看到所有带有翻译的解决方案资源。
  • 2.将中性文化资源提取为明确的法文

  • 使用工具栏中的“添加新语言”按钮为法语添加一个新列。
  • 从现有的中性语言栏中复制所有法语资源(CTRL-SHIFT-DOWN帮助顶部选择完整列)
  • 将所有资源粘贴到新的法国专栏。
  • 请注意,ResXManager将为您创建新的resx文件并将它们添加到项目文件中。

    3.将中性文化背景设定为英文

  • 复制特定文化栏中的所有英文资源
  • 将所有资源粘贴到中性文化列
  • 4.告诉.Net中立文化现在是英语

    [assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.MainAssembly)]
    

    5.删除显式的英文resx文件。

    由于中性resx文件现在已经包含英文资源,因此您不需要将它们保留为特定于文化的文件。 不幸的是,ResXManager似乎没有按钮,但你可以选择使用VS解决方案管理器过滤器“en-GB.resx”并删除它找到的所有文件。 再次,在VS中自动更新您的项目文件。

    全做完了。

    链接地址: http://www.djcxy.com/p/95379.html

    上一篇: Change the "(default)" ResX language in a C# app

    下一篇: How to troubleshoot .net WinForm dialog localization