Files
DP44/enriched-partialglm/DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.AddCalculatedChannel/Resources.md
2026-04-17 14:55:32 -04:00

8.2 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.AddCalculatedChannel/Resources/TranslateExtension.cs
DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.AddCalculatedChannel/Resources/StringResources.Designer.cs
2026-04-16T11:20:45.009025+00:00 zai-org/GLM-5-FP8 1 5726c0d4d71935f1

Documentation: DTS.Viewer.AddCalculatedChannel.Resources

1. Purpose

This module provides localization infrastructure for the "Add Calculated Channel" feature within the DTS Viewer application. It consists of a WPF XAML markup extension (TranslateExtension) that enables declarative resource lookups in XAML bindings, and a strongly-typed resource accessor class (StringResources) that wraps a .resx file containing localized strings for UI elements, calculation types, error messages, and IR-TRACC measurement labels. The module supports the crash test data analysis domain, providing terminology for head injury criterion (HIC), 3D IR-TRACC calculations, and various mathematical operations.


2. Public Interface

TranslateExtension (DTS.Viewer.AddCalculatedChannel)

A WPF markup extension for performing localized string lookups in XAML.

[MarkupExtensionReturnType(typeof(string))]
public class TranslateExtension : MarkupExtension

Constructor:

  • TranslateExtension(string key) — Initializes the extension with the resource key to look up. The key is stored in a private readonly field _key.

Methods:

  • public override object ProvideValue(IServiceProvider serviceProvider) — Returns the localized string for the stored key. Returns #stringnotfound# if _key is null or empty. Returns #stringnotfound# {key} if the resource manager returns null for the given key.

Constants:

  • private const string NotFound = "#stringnotfound#" — Fallback string used when a resource lookup fails.

StringResources (DTS.Viewer.AddCalculatedChannel.Resources)

An auto-generated, strongly-typed resource accessor class. This class is internal.

internal class StringResources

Static Properties:

Property Type Description
ResourceManager global::System.Resources.ResourceManager Lazily-initialized cached ResourceManager instance for the DTS.Viewer.AddCalculatedChannel.Resources.StringResources resource bundle.
Culture global::System.Globalization.CultureInfo Gets or sets the current thread's UI culture for resource lookups.

Resource String Properties (static, read-only):

The following localized string properties are exposed. All return string:

  • AddCalculatedChannel — "Add Calculated Channel"
  • CalculatedChannel_Average — "Average"
  • CalculatedChannel_IRTRACC3D — "3D IR-TRACC (upper thorax)"
  • CalculatedChannel_IRTRACC3D_Abdomen — "3D IR-TRACC (abdomen)"
  • CalculatedChannel_IRTRACC3D_LowerThorax — "3D IR-TRACC (lower thorax)"
  • CalculatedChannel_IRTRACC3D_Thorax — "3D IR-TRACC (thorax)"
  • CalculatedChannel_IRTRACC3DAbdomen — "3D IR-TRACC (abdomen)"
  • CalculatedChannel_IRTRACC3DLowerThorax — "3D IR-TRACC (lower thorax)"
  • CalculatedChannel_Sum — "Sum"
  • Calculation — "Calculation"
  • CALCULATION_Cos — "Cosine"
  • CALCULATION_Derivative — "Derivative"
  • CALCULATION_DoubleIntegral — "Double integral"
  • CALCULATION_Integral — "Integral"
  • CALCULATION_Sin — "Sine"
  • CALCULATION_ThreeDIRTracc — "3D IR-TRACC (upper thorax)"
  • CALCULATION_ThreeDIRTraccAbdomen — "3D IR-TRACC (abdomen)"
  • CALCULATION_ThreeDIRTraccLowerThorax — "3D IR-TRACC (lower thorax)"
  • CalculationInputChannel — "Calculation Input Channel"
  • Channel — "Channel"
  • ChannelName — "Channel Name"
  • ClipLengthMS — "Clip length (ms)"
  • Description — "Description"
  • HICAccelerationX — "Acceleration X"
  • HICAccelerationY — "Acceleration Y"
  • HICAccelerationZ — "AccelerationZ"
  • HICRequires3Channels — "Error: Head injury criterion requires 3 channels."
  • InputChannels — "Input channels"
  • ISOCode — "ISO Code"
  • NoChannelsIncluded — "Error: No channels included."
  • ResultantUnitsDontMatch — "Error: Units don't match for all input channels."
  • SampleRatesDontMatch — "Error: Sample rates don't match for all input channels."
  • SuperSamplingWarning — "Calculation contains multiple sample rates. Input will be resampled to the highest sample rate using linear interpolation."
  • ThreeD_IRTracc — "IR-TRACC"
  • ThreeD_RotPot1 — "R. Pot Y"
  • ThreeD_RotPot2 — "R. Pot Z"

3. Invariants

  1. TranslateExtension always returns a non-null string. The ProvideValue method guarantees a string return value—either the localized resource, #stringnotfound#, or #stringnotfound# {key}.

  2. Empty/null key handling differs from missing key handling. When _key is null or empty, the return is exactly #stringnotfound#. When _key is valid but the resource is missing, the return is #stringnotfound# {key} (includes the key name).

  3. StringResources.ResourceManager is lazily initialized and thread-safe. The property uses a null-check pattern with a temporary variable before assignment.

  4. StringResources is auto-generated. The class bears GeneratedCodeAttribute, DebuggerNonUserCodeAttribute, and CompilerGeneratedAttribute. Manual modifications will be lost on regeneration.

  5. StringResources.Culture defaults to null. If not explicitly set, resource lookups will use the current thread's UI culture.

  6. All resource string properties are internal. They are only accessible within the DTS.Viewer.AddCalculatedChannel.Resources namespace or via friend assemblies.


4. Dependencies

This module depends on:

  • System — Core .NET types
  • System.Windows.MarkupMarkupExtension base class and MarkupExtensionReturnTypeAttribute
  • System.ResourcesResourceManager for resource lookups
  • System.GlobalizationCultureInfo for culture-specific lookups
  • System.CodeDom.CompilerGeneratedCodeAttribute (auto-generated code)
  • System.DiagnosticsDebuggerNonUserCodeAttribute
  • System.Runtime.CompilerServicesCompilerGeneratedAttribute
  • System.ComponentModelEditorBrowsableAttribute

What depends on this module:

Inferred from context: The TranslateExtension class is designed for use in XAML files within the DTS.Viewer.AddCalculatedChannel namespace. The resource strings reference calculation types, IR-TRACC measurements, and HIC (Head Injury Criterion) parameters, suggesting this module supports a crash test data analysis UI.

Note: The actual XAML consumers and other code-behind files that reference StringResources are not present in the provided source files.


5. Gotchas

  1. Duplicate/overlapping resource keys exist. There appear to be semantically duplicate keys with slightly different naming conventions:

    • CalculatedChannel_IRTRACC3D_Abdomen and CalculatedChannel_IRTRACC3DAbdomen both return "3D IR-TRACC (abdomen)"
    • CalculatedChannel_IRTRACC3D_LowerThorax and CalculatedChannel_IRTRACC3DLowerThorax both return "3D IR-TRACC (lower thorax)"
    • CalculatedChannel_IRTRACC3D and CALCULATION_ThreeDIRTracc both return "3D IR-TRACC (upper thorax)"

    This may indicate a naming convention shift or migration artifact. Developers should verify which key is intended for use in new code.

  2. Inconsistent naming conventions. Some keys use underscores with prefixes (CALCULATION_*), others use different patterns (CalculatedChannel_*). The rationale for this is unclear from source alone.

  3. HICAccelerationZ lacks a space. The value is "AccelerationZ" while X and Y variants are "Acceleration X" and "Acceleration Y". This may be a typo in the .resx file.

  4. TranslateExtension does not use the Culture property. The extension calls StringResources.ResourceManager.GetString(_key) without passing a culture, meaning it uses the current thread's UI culture. If StringResources.Culture has been set to a different value, the extension will not respect it.

  5. IServiceProvider parameter is unused. The serviceProvider parameter in ProvideValue is accepted but never used, which is typical for simple markup extensions but worth noting if advanced target-aware behavior is ever needed.