StockSharp.Localization provides a flexible and extensible localization system for the entire StockSharp framework. The package contains the default English resources and utilities for switching languages at runtime. It works together with language specific packages located in Localization.Langs.
- JSON based resources – human readable
strings.jsonholds the default English text for all UI elements and messages. - Source generator – during build
Localization.Generatorconverts the JSON file into strongly typed properties of theLocalizedStringsclass. - Runtime language switching – any number of language packs can be added and activated through
LocalizedStrings.AddLanguageandLocalizedStrings.ActiveLanguage. - Missing translation tracking – the
Missingevent notifies when a resource key or text does not have a translation. - Automatic culture update – setting
ActiveLanguageupdatesThread.CurrentCultureandThread.CurrentUICulture.
Add StockSharp.Localization as a NuGet package to your project. To include additional languages, reference the corresponding package such as StockSharp.Localization.ru or the meta package StockSharp.Localization.All.
The source generator is included automatically and requires no manual configuration.
Retrieve a localized string via the generated properties:
// get text for the current language
string text = LocalizedStrings.About;
// explicitly translate from one language to another
string russian = "About".Translate(from: LocalizedStrings.EnCode, to: LocalizedStrings.RuCode);Switch the active language at runtime:
// change UI culture to Russian
LocalizedStrings.ActiveLanguage = LocalizedStrings.RuCode;To add your own language:
- Create a
strings.jsonfile with translations where keys match those in the base project. - Include the JSON in a new
.csprojreferencingcommon_lang.props(see examples inLocalization.Langs). - Reference the resulting assembly in your application.
LocalizedStringswill automatically pick it up when available.
Languages can also be loaded dynamically using AddLanguage(string langCode, Stream stream) at runtime.