本地化的 resx 文件作为解决方案资源管理器中的子项

发布于 2024-11-24 20:03:54 字数 552 浏览 2 评论 0原文

我们在 Visual Studio 解决方案中拥有大量 C# 项目。对于其中的许多内容,我们有一个名为“TextResources.resx”的资源文件。这些文件过去已被翻译,创建了几个相关的 resx 文件,例如“TextResources.fr.resx”。对于这些较旧的项目,这些翻译后的 resx 文件显示为默认英语 TextResources.resx 的子项目,但是对于几个新项目,翻译后的项目显示为单独的(相同树级别)项目。

希望这张图能够解释:

旧项目:

- TextResources.resx
     - TextResources.fr.resx 
     - TextResources.de.resx

新项目:

- TextResources.fr.resx 
- TextResources.de.resx 
- TextResources.resx 

这不仅看起来很奇怪,而且与这么多项目一起有点令人困惑。有人知道为什么它会对一些翻译后的 resx 文件进行分组而不对其他文件进行分组吗?

We have a large number of C# projects in a visual studio solution. For a lot of these we have a resource file called 'TextResources.resx'. These have been translated in the past creating several related resx files for example 'TextResources.fr.resx'. For these older projects these translated resx files are showing as sub items of the default english TextResources.resx however for several new projects the translated items are appearing as separate (same tree level) items.

Hopefully this diagram will explain:

Old Projects:

- TextResources.resx
     - TextResources.fr.resx 
     - TextResources.de.resx

New Projects:

- TextResources.fr.resx 
- TextResources.de.resx 
- TextResources.resx 

This not only looks odd but is a little confusing with so many projects. Anyone know why its grouping some translated resx files but not others?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

和我恋爱吧 2024-12-01 20:03:54

我也遇到了同样的问题,也没有找到答案。

我最终手动编辑了项目 (.csproj) 文件。

<EmbeddedResource Include="Folder\TextResources.de.resx">
  <DependentUpon>TextResources.resx</DependentUpon>
  <SubType>Designer</SubType>
</EmbeddedResource>

添加

<DependentUpon></DependentUpon> 

标签并键入不带前导文件夹的“父”资源文件的名称。

I had the same problem and found no answer either.

I ended up editing the project (.csproj) file by hand.

<EmbeddedResource Include="Folder\TextResources.de.resx">
  <DependentUpon>TextResources.resx</DependentUpon>
  <SubType>Designer</SubType>
</EmbeddedResource>

Add the

<DependentUpon></DependentUpon> 

tag and type out the name of the "parent" resource file without leading folders.

无人问我粥可暖 2024-12-01 20:03:54

查看 VS2019 中的自定义文件嵌套功能,这里有一个示例: -

https:/ /mitch.codes/tip-visual-studio-custom-file-nesting/

打开[自定义]“xx.filenesting.json”文件进行编辑后,只需添加一个条目路径段部分中的“.resx”: -

查看 %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\NestingProfiles

      "pathSegment": {
        "add": {
          ".*": [
            ".js",
            ".css",
            ".html",
            ".htm",
            ".less",
            ".scss",
            ".coffee",
            ".iced",
            ".config",
            ".cs",
            ".vb",
            ".json",
            ".resx"          <-----
          ]
        }
      },

Check out the custom file nesting feature in VS2019 here's an example: -

https://mitch.codes/tip-visual-studio-custom-file-nesting/

Once you have the [customised] "xx.filenesting.json" file open for editing, just add an entry for ".resx" in the path segments section: -

look in %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\NestingProfiles

      "pathSegment": {
        "add": {
          ".*": [
            ".js",
            ".css",
            ".html",
            ".htm",
            ".less",
            ".scss",
            ".coffee",
            ".iced",
            ".config",
            ".cs",
            ".vb",
            ".json",
            ".resx"          <-----
          ]
        }
      },
抚你发端 2024-12-01 20:03:54

此解决方案适用于 Visual Studio 2019

  <!-- Main Resource file -->
  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>TextResources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

 <!-- Resource Designer class -->    
 <ItemGroup>
    <Compile Update="Path\TextResources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>TextResources.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <!-- Nested Resources files -->
  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.en.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.de.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.ar.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

This solution for Visual Studio 2019

  <!-- Main Resource file -->
  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>TextResources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

 <!-- Resource Designer class -->    
 <ItemGroup>
    <Compile Update="Path\TextResources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>TextResources.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <!-- Nested Resources files -->
  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.en.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.de.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Path\TextResources.ar.resx">
      <DependentUpon>Path\TextResources.resx</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文