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

zdi*_*ion 3 .net c# localization resx

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

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

Imr*_*vel 5

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

详细步骤:

1.运行并配置ResXManager

在 VS 中:工具 -> ResXManager。

  1. 选择配置选项卡(如下)
    1. 禁用选项“确认添加新资源文件”。否则,您必须稍后单击每个文件才能接受其创建。
    2. 设置中性资源语言,以便它会显示正确的标志,以满足您的观看乐趣。
  2. 切换回主选项卡,您可以在其中并排查看所有解决方案资源和翻译。

2. 提取中立文化资源,明确为法语

  1. 使用工具栏中的“添加新语言”按钮添加法语新列。
  2. 从现有的中性语言列中复制所有法语资源(CTRL-SHIFT-DOWN有助于顶部选择整个列)
  3. 将所有资源粘贴到新的法语列。

请注意,ResXManager 将为您创建新的 resx 文件并将它们添加到项目文件中。

3. 将中性文化资源设置为英语资源

  1. 复制特定文化栏目中的所有英语资源
  2. 将所有资源粘贴到中性文化栏

4. 通知.Net中性文化现在是英语

[assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.MainAssembly)]
Run Code Online (Sandbox Code Playgroud)

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

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

全做完了。