Skip to content

Multiple .resx files treated as separate languages instead of separate resource groups #6

@gianlucabarbieri

Description

@gianlucabarbieri

Multiple .resx files treated as separate languages instead of separate resource groups

Description

When a project contains multiple .resx files for different resource domains (e.g. CustomerResources.resx, SharedResources.resx, GlassResources.resx, QuoteResources.resx), the extension incorrectly treats each file as a separate language column instead of recognizing them as separate resource groups belonging to the same language.

Image

Environment

  • VS Code version: latest
  • LRM extension version: latest
  • Project type: ASP.NET Core Blazor with IStringLocalizer

Resource folder structure

Resources/
  CustomerResources.resx
  GlassResources.resx
  QuoteResources.resx
  SharedResources.resx

Expected behavior

The Resource Editor should show one column per language, aggregating keys from all .resx files. The Dashboard should report correct coverage based on the actual number of languages (e.g. 1 language = 1 column).

Actual behavior

  • The Resource Editor shows one column per .resx file (4 files = 4 columns), all labeled it
  • All columns show (empty) for keys that exist in files other than the first one detected
  • The Dashboard shows inflated metrics: 180% Avg Coverage, -32 Missing Translations, 8 Languages (instead of 1)
  • Adding a new .resx file adds a new column instead of extending the existing language

Steps to reproduce

  1. Create a project with multiple .resx files for different resource domains (e.g. CustomerResources.resx, SharedResources.resx)
  2. Set lrm.resourcePath to the resources folder
  3. Set Default Language Code to it in LRM settings
  4. Open the LRM Dashboard and Resource Editor
  5. Observe that each .resx file is shown as a separate language column

Additional context

This is a common pattern in ASP.NET Core projects using IStringLocalizer<T>, where resources are split by domain/feature (Customers, Orders, Products, etc.) rather than having a single monolithic resource file. LRM appears to be designed around a single-file-per-language model, which does not match this widely used .NET convention.

The lrm.json defaultLanguage setting and the VS Code Default Language Code setting do not resolve the issue.

Workaround

None found. Using a single .resx file works correctly but is not a viable architecture for medium/large projects.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions