Files
2026-04-17 14:55:32 -04:00

5.0 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReportResults/Resources/TranslateExtension.cs
DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReportResults/Resources/StringResources.Designer.cs
2026-04-16T11:02:06.405832+00:00 zai-org/GLM-5-FP8 1 154eee0c947eb6d0

Documentation: DTS.Viewer.PSDReportResults.Resources

1. Purpose

This module provides localization infrastructure for the PSD Report Results viewer component. It consists of a strongly-typed resource accessor class (StringResources) generated from a .resx file, and a XAML markup extension (TranslateExtension) that allows UI elements to bind directly to localized strings declaratively within XAML markup.

2. Public Interface

TranslateExtension

Location: DTS.Viewer.PSDReportResults.Resources.TranslateExtension Inheritance: System.Windows.Markup.MarkupExtension

A XAML markup extension used to resolve localized strings at runtime.

  • Constructor

    public TranslateExtension(string key)
    

    Initializes the extension with the resource key to be looked up. The key is stored in a private readonly field _key.

  • Method: ProvideValue

    public override object ProvideValue(IServiceProvider serviceProvider)
    

    Resolves the localized string for the key provided in the constructor.

    • Returns NotFound ("#stringnotfound#") if the _key is null or empty.
    • Retrieves the string using StringResources.ResourceManager.GetString(_key).
    • Returns NotFound + " " + _key if the resource lookup returns null (key not found in resources).

StringResources

Location: DTS.Viewer.PSDReportResults.Resources.StringResources Visibility: internal

A strongly-typed resource class auto-generated by Visual Studio/ResGen. It provides access to localized strings defined in the associated .resx file.

  • Property: ResourceManager

    internal static global::System.Resources.ResourceManager ResourceManager { get; }
    

    Returns the cached ResourceManager instance for this assembly. It looks up resources named "DTS.Viewer.PSDReportResults.Resources.StringResources".

  • Property: Culture

    internal static global::System.Globalization.CultureInfo Culture { get; set; }
    

    Gets or sets the current CultureInfo for resource lookups. Overrides the current thread's CurrentUICulture for this specific resource class.

  • Resource Properties (Static Strings) The following static properties return localized strings:

    • ChannelName (Lookup key: "ChannelName")
    • ExportPSDHeader (Lookup key: "ExportPSDHeader")
    • ExportPSDtoCSV (Lookup key: "ExportPSDtoCSV")
    • ExportPSDtoPDF (Lookup key: "ExportPSDtoPDF")
    • GRMS (Lookup key: "GRMS")
    • PSDResultsHeader (Lookup key: "PSDResultsHeader")
    • SampleRate (Lookup key: "SampleRate")

3. Invariants

  • Auto-generation: The StringResources class is auto-generated. Manual modifications to StringResources.Designer.cs will be lost upon regeneration. Changes must be made to the underlying .resx file.
  • Return Types: TranslateExtension is decorated with [MarkupExtensionReturnType(typeof(string))], guaranteeing that ProvideValue returns a string (or the fallback error string).
  • Fallback Behavior: TranslateExtension will never return null. It guarantees a string return, either the localized value or a specific error constant.
  • Visibility: StringResources is internal, restricting access to the DTS.Viewer.PSDReportResults assembly.

4. Dependencies

  • Internal Dependencies:
    • TranslateExtension depends entirely on StringResources.ResourceManager to perform lookups.
  • External Dependencies (Framework):
    • System
    • System.Windows.Markup (for MarkupExtension and IServiceProvider)
    • System.Resources (for ResourceManager)
    • System.Globalization (for CultureInfo)
    • System.CodeDom.Compiler (Attributes on StringResources)

5. Gotchas

  • Error String Variations: The TranslateExtension returns different error strings depending on the failure mode.
    • If the input _key is null/empty, it returns exactly "#stringnotfound#".
    • If the lookup fails (key is valid but missing in resources), it returns "#stringnotfound# " + _key (note the space and the appended key).
    • Developers parsing or validating these strings must account for this difference.
  • Designer File Edits: As noted in the auto-generated header, editing StringResources.Designer.cs directly is unsafe. The specific resource strings listed (e.g., ChannelName, GRMS) are the only ones currently defined; adding new ones requires regenerating this file.
  • Culture Management: StringResources.Culture is a static property. Setting it changes the culture for all subsequent lookups within this resource manager, potentially affecting threading behavior if not managed carefully.