Localization from the database


Has anyone tried to change default behavior of the IStringLocalizer and store and get string translations from the database?

I've created public class CustomStringLocalizer : IStringLocalizer and registered it in the Startup.cs like:
services.AddLocalization(); services.AddSingleton<IStringLocalizer>(sp => new CustomStringLocalizer());

but for some reason, the app is still using .resx files Radzen created automatically.

So basically, I would like to change the source of the localization strings from .resx files to database table.

Thank you!

Hi @gotik911,

Most probably this code isn't replacing the default implementation or is called to early and gets replaced afterwards. Also Radzen pages use IStringLocalizer<T> instead of IStringLocalizer.

Hi @korchev,

Thank you so much for the quick response. You are right about IStringLocalizer<T>. I implemented it and it works now.

What do you think, is it possible to implement localization string insert into database table of the default culture string when I add it in Radzen (or change the Text property of some control), the same way Radzen do in the .resx files?

No, I am afraid this isn't possible to support.

Thank you! I'll just check the .resx file if the localization is not found in the table. Not sure about performances, but I think it will help a lot until all strings are translated in the db table.

One more time, thank you for your great support!