robbiblubber.org
EN
Projects
Suite.NETMIT

Localization.NET.

Robbiblubber.Localization.NET

One application, several languages. Localization connects texts and locale definitions to your code and includes the tools to create and maintain the files. For your own applications, with direct WinForms integration.

.NET 8.NET 10

Tools

2
Tool

bloc

Robbiblubber.Localization.Builder

Create locale definitions from the command line. bloc writes .locale files with a key, name, icons and optional base locale, using arguments or interactive mode.

Platform-independent code / consoleTarget frameworks: net8.0 / net10.0
Tool

Localization Editor

Robbiblubber.Localization.Editor

Translations need a place to work. Localization Editor creates and edits language tables and locale definitions, with multiple document windows, search, import and a text editor for longer content.

Windows / WinFormsTarget frameworks: net8.0-windows / net10.0-windows

Libraries & extensions

2

The libraries are available as separate NuGet packages. Install the building blocks your project needs.

Library

Robbiblubber.Localization

Look up texts by stable symbols, switch languages at runtime and maintain translations separately from your program. Locale definitions and language tables come from files, embedded resources or custom sources.

Platform-independent codeTarget frameworks: net8.0 / net10.0

What’s inside

  • Locale definitions (.locale), language tables (.ltab) and compressed tables (.cltab).
  • Base locales for regional variants, fallback texts and prefixes for separate namespaces.
  • Placeholders and formatting using the culture of the current locale.
  • Directory and assembly sources, custom ILocalizationSource implementations, reloading and loading diagnostics.
A small starting point C#
using Robbiblubber.Localization;

Locale.Current = Locale.Locales["de"];
string save = "app:mw.save".LookUp("Save");
string info = "app:mw.saved".LookUp(
    "$NAME has been saved.", ("NAME", "report.csv"));

Provide the locale files in the application directory, select a locale and look up texts with defaults and placeholders.

Installation
dotnet add package Robbiblubber.Localization
Library

Robbiblubber.Localization.Controls

Localize WinForms interfaces without replacing their controls. Designer components connect texts, tooltips and accessible labels to language tables. A repository sample shows the integration.

Windows / WinFormsTarget frameworks: net8.0-windows / net10.0-windows

What’s inside

  • LocaleProvider for controls, ToolStrip items and column headers; automatic updates when the locale changes.
  • LocalizableToolTip and LocaleSelector for localized tooltips and language selection.
  • Localizable list and tree items; optional reading direction matching the locale.
  • SpellbookLocalization.Enable() connects Spellbook dialogs and ThemeSelector to translations; tables for de, en, fr and id are included.
A small starting point C#
using Robbiblubber.Localization.Controls;

LocaleProvider locales = new(components)
{
    ContainerControl = this,
    AutoUpdate = true
};
locales.SetLocaleSymbol(saveButton, "app:mw.save");
locales.Localize();

Inside a WinForms form after InitializeComponent(), with an existing components container and saveButton. The same mappings can be set in the designer.

Installation
dotnet add package Robbiblubber.Localization.Controls

The .NET libraries are distributed through NuGet. Tools and libraries remain grouped in their suites and collections.

View all projects