Runic.Translations 0.8.0

dotnet add package Runic.Translations --version 0.8.0
                    
NuGet\Install-Package Runic.Translations -Version 0.8.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Runic.Translations" Version="0.8.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Runic.Translations" Version="0.8.0" />
                    
Directory.Packages.props
<PackageReference Include="Runic.Translations" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Runic.Translations --version 0.8.0
                    
#r "nuget: Runic.Translations, 0.8.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Runic.Translations@0.8.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Runic.Translations&version=0.8.0
                    
Install as a Cake Addin
#tool nuget:?package=Runic.Translations&version=0.8.0
                    
Install as a Cake Tool

Runic.Translations

Run compiled translations in .NET applications with immutable locale snapshots, typed formatting, fallback, and atomic locale switching. The runtime is UI-framework independent, reflection-free, and compatible with NativeAOT.

Install

dotnet add package Runic.Translations --version <VERSION>

Replace <VERSION> with the current version shown on NuGet. The package targets .NET 10. For generated catalogs, install Runic.Translations.Build at the same exact version; it owns the generator, catalog item mapping, and optional non-C# artifacts.

Use a generated catalog

Given the project template's starter catalog with code.className set to AppText, the generator creates registration and typed accessors. text.Messages is the readable surface and names each message by its flattened key, so the starter message application.title is application_title. The encoded r_<hex> members stay available as the stable machine-facing contract. Each encoded segment is r_ followed by the hexadecimal UTF-8 bytes of its NFC-normalized text, and the encoded segments are joined with _.

using Example.Translations;
using Runic.Translations;

ITranslationManager manager = await AppTextCatalog.CreateManagerAsync(
    initialLocale: "en");
var text = new AppText(manager);

Console.WriteLine(text.Messages.application_title);

await manager.SetLocaleAsync("de");
Console.WriteLine(text.Messages.application_title);

Each successful locale change replaces the complete immutable snapshot. Reads through manager.Current do not observe a partially updated catalog.

When to choose this package

Choose Runic.Translations for application runtime behavior: generated catalog data, locale resolution, formatting, structured content, translation references, and optional verified external packs. Choose Runic.Translations.Tooling when building an editor, compiler host, or workspace tool.

External packs are untrusted until their artifact version, catalog, locale, contract fingerprint, keys, argument contracts, and limits have been verified. Applications that require authenticity must also supply an integrity verifier; schema validation alone does not establish provenance.

Generated RMF2 catalogs use v5 pack factories and strict version/profile dispatch. A matching fingerprint demonstrates generated-contract compatibility; it is not a signature or authenticity proof. Unsupported artifact, grammar, profile, and ABI versions fail explicitly.

Compatibility and status

This package targets .NET 10. Before 1.0 a minor release may contain breaking changes, each listed with upgrade steps in the release notes (see Versions before 1.0). Keep the runtime and generated source on the same Runic Translations release; runtime ABI mismatches fail explicitly.

Generated code calls the runtime through the Runic.Translations.Generated namespace: the CompiledRmf2* message model, TranslationsCompatibility and GeneratedCatalogSupport. These types are binary compatible for code that an earlier release of the same major generated, but they are not application API: their source may change in a minor, and they are marked [EditorBrowsable(Never)]. TextArgumentFormat.Fixed0–Fixed6/Percent0–Percent4 are likewise hidden. Generated readable surfaces implement IReadableMessages.

Open and closed sets: the markup bindings (InlineLinkBinding, InlineActionBinding, InlineIconBinding) are a closed set, so a switch over them is exhaustive. TranslationPackFailureReason, TranslationReferenceDiagnosticReason and the RMF2 document block names are open: handle a value you do not know.

Licensed under the MIT License. See Third-Party Notices for bundled data attribution.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Runic.Translations:

Package Downloads
Runic.Translations.Wpf

WPF inline and document rendering for compiled RMF2 messages.

Runic.Translations.CommandLine

Translates Runic.CommandLine help, errors and faults with Runic Translations, with built-in English and German text.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.8.0 325 10/22/2026
0.7.0-preview.4 505 10/17/2026
0.7.0-preview.3 229 10/17/2026
0.7.0-preview.2 218 10/15/2026
0.7.0-preview.1 169 10/14/2026
0.6.0-preview.7 68 10/12/2026
0.6.0-preview.5 820 10/9/2026
0.6.0-preview.4 369 10/8/2026
0.6.0-preview.3 463 10/7/2026
0.6.0-preview.2 535 10/7/2026
0.6.0-preview.1 1,146 10/5/2026
0.5.0-preview.3 65 10/1/2026
0.5.0-preview.2 75 9/25/2026
0.4.0-preview.1 74 9/22/2026
0.3.0-preview.1 88 9/11/2026
0.2.0-preview.1 90 9/9/2026