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中的“中性语言”,但没有效果。
虽然您可以在文件系统中进行重命名以实现中性文化/资源更改,但您还需要更新项目文件,这很麻烦。我发现最简单的方法是通过名为ResXManager的 Visual Studio 扩展来执行此操作。
详细步骤:
在 VS 中:工具 -> ResXManager。
请注意,ResXManager 将为您创建新的 resx 文件并将它们添加到项目文件中。
[assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.MainAssembly)]
Run Code Online (Sandbox Code Playgroud)
由于中性 resx 文件现在已经包含英语资源,因此您不需要将它们保留为特定于文化的资源。不幸的是,ResXManager 似乎没有用于此操作的按钮,但您可以选择使用 VS 解决方案管理器过滤器“en-GB.resx”并删除它找到的所有文件。同样,在 VS 中执行此操作会自动更新您的项目文件。
全做完了。