.net - 将翻译后的 resx 文件放在 Visual Studio 中的不同文件夹中?

标签 .net visual-studio globalization resx

我有一个包含 14 个翻译和 12 个文件的解决方案,“资源”文件夹有点失控。有没有办法将翻译后的文件放在不同的文件夹中,以便我可以更轻松地访问母版英文文件?

我注意到您可以通过设置自定义工具命名空间来更改生成设计器文件的命名空间,但我还不知道如何从不同的文件夹中获取翻译。我玩弄了使用链接来制作“快捷方式”文件夹和“真实”文件夹的想法,但是您不能链接到项目结构中的文件,也不能在项目结构之外两次链接到同一个文件.我考虑过根据语言更改 ResourceManager 使用的 namespace ,但这会破坏回退行为。

有什么方法可以管理它,使其不再是解决方案资源管理器中的一大堆文件?

最佳答案

假设您想将所有已翻译的 .resx 文件放在 Translations 文件夹中,如下所示(请注意,我保留了默认en 根文件夹中的版本):

enter image description here

然后您需要做的就是编辑 MSBuild 项目文件(从 Visual Studio 中,右键单击项目节点,“卸载项目”,然后“编辑 xxx.csproj”),然后重新配置此文件夹中的每个 Resx 文件像这样:

之前:

  <ItemGroup>
    ...
    <EmbeddedResource Include="Resource1.en.resx" />
    <EmbeddedResource Include="Translations\Resource1.fr.resx" />
    <EmbeddedResource Include="Resource1.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resource1.Designer.cs</LastGenOutput>
    </EmbeddedResource>
    ...
  </ItemGroup>

之后:

  <ItemGroup>
    ...
    <EmbeddedResource Include="Resource1.en.resx" />
    <EmbeddedResource Include="Translations\Resource1.fr.resx">
      <ManifestResourceName>$(TargetName).%(Filename)</ManifestResourceName> <!-- add this for all .resx files in a custom folder -->
    </EmbeddedResource>
    <EmbeddedResource Include="Resource1.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resource1.Designer.cs</LastGenOutput>
    </EmbeddedResource>
    ...
  </ItemGroup>

它的作用是指示底层 MSBuild 任务使用您指定的 list 名称,而不是自动生成 list 名称。自动生成的总是使用 RESX 所在的文件夹布局,这不是我们想要的。

编译完成后,最终的附属ConsoleApplication1.resources.dll文件会像往常一样放在fr文件夹中,但其内容和resx一样文件放在根文件夹中。

关于.net - 将翻译后的 resx 文件放在 Visual Studio 中的不同文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33007969/

相关文章:

c# - 如何防止 WebClient 类自动跟随 header 中的位置?

c# - 加载到 DataTable 时 NullValues 选项不起作用

c# - 从 Visual Studio 2013 数据库项目中清理 SQL Server 数据库

winforms - WinForms应用程序的本地化和全局化

c# - 如何使用 Azure 存储 SDK 将 Azure 文件存储上的文件从一个子文件夹移动到另一个子文件夹?

c# - 如何将参数传递给依赖项通过 IoC 容器连接的类?

visual-studio-2010 - 如何*手动*在 Visual Studio 中启动最后一次成功构建?

visual-studio - 未找到 Visual Studio 2017 和 Windows 10 SDK 10.0.15063 _scale-100.appx

.net - 在 .NET 中使用十进制类型的问题

c# - 日期时间格式和中性文化