Diagnostics
If localization issues require diagnosis, the reference for localization can be acquired in Program.cs.
IHostBuilder hostBuilder = CreateHostBuilder(args);
IHost host = hostBuilder.Build();
ILocalization localization = (ILocalization)host.Services.GetService(typeof(ILocalization));
Following snippet in Program.cs prints accessible localization lines.
var app = builder.Build();
// Localization diagnostics
{
// Get localization context
ILocalization localization = app.Services.GetService<ILocalization>()!;
// Get logger
ILogger logger = app.Services.GetService<ILogger<Program>>()!;
// Print lines that are visible to localization
if (localization.LineQueryCached.TryGetValue((null, null), out IEnumerable<IEnumerable<KeyValuePair<string, MarkedText>>> lines))
{
foreach (var line in lines)
{
// Read values
line.ReadValues(out MarkedText pluralRules, out MarkedText culture, out MarkedText key, out MarkedText plurals, out MarkedText template, out MarkedText text);
// No value
if (!key.HasValue || !text.HasValue) continue;
// Log
logger.LogInformation("Culture={Culture}, Key={Key}, Text={Text}, Template={Template}, PluralRules={PluralRules}, Plurals={Plurals}", culture.Text, key.Text, text.Text, template.Text, pluralRules.Text, plurals.Text);
}
}
}