我正在用C#创建一个应用程序,有很多表单和其他东西。 我想本地化它,所以我在VS中使用了集成的本地化功能。 该应用程序最初是法语(因为我)与英语翻译RESXes,但现在它是在Codeplex与其他一些不会说法语的开发人员,我想在应用程序和RESX文件中更改“默认”语言所以他们可以翻译成其他语言,而无需阅读法语。 因为在VS Form Designer中选择其他语言时,它会显示默认语言(此处为法语)。我试图重命名所有文件,但问题是所有表单属性都存储在默认的RESX中,法语版本,所以如果我重命名,它会破坏所有的东西。是否可以将默认语言更改为英语?
编辑:我认为我需要更精确。 该应用程序最初是法语。然后我用英语将其本地化。现在有一个MainWindow.resx包含表单属性+原始法语本地化和MainWindow.en-US.resx,它只包含英语本地化。因此,如果在Designer中,在“语言”中我选择“(默认)”它会显示MainWindow.resx FRENCH,如果我想翻译,它会显示法语文本。为了让其他开发人员更容易进行翻译,我想进行MainWindow.resx ENGLISH本地化并创建一个单独的MainWindow.fr-FR.resx。我也尝试在AssemblyInfo.cs中改变“中性语言”,没有效果。答案 0 :(得分:1)
您可以通过代码更改应用程序中的CurrentCulture和CurrentUICulture。 它与用于在运行时更改应用程序语言的方法相同。
看一下这段代码:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
希望它有所帮助。
答案 1 :(得分:0)
虽然您可以在文件系统中重命名以实现中性文化/资源更改,但您还需要更新项目文件,这很麻烦。我发现最简单的方法是通过名为ResXManager的Visual Studio扩展来完成此操作。
详细步骤:
在VS中:工具 - > ResXManager。
请注意,ResXManager将为您创建新的resx文件并将其添加到项目文件中。
[assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.MainAssembly)]
由于中性resx文件现在已经包含英语资源,因此您不需要将它们保留为特定于文化的文件。不幸的是,ResXManager似乎没有一个按钮,但我可以选择使用VS解决方案管理器过滤器" en-GB.resx"并删除它找到的所有文件。再次,在VS中执行此操作会自动更新项目文件。
全部完成。