LocalizationProvider.Storage.SqlServer
9.0.0
dotnet add package LocalizationProvider.Storage.SqlServer --version 9.0.0
NuGet\Install-Package LocalizationProvider.Storage.SqlServer -Version 9.0.0
<PackageReference Include="LocalizationProvider.Storage.SqlServer" Version="9.0.0" />
<PackageVersion Include="LocalizationProvider.Storage.SqlServer" Version="9.0.0" />
<PackageReference Include="LocalizationProvider.Storage.SqlServer" />
paket add LocalizationProvider.Storage.SqlServer --version 9.0.0
#r "nuget: LocalizationProvider.Storage.SqlServer, 9.0.0"
#:package LocalizationProvider.Storage.SqlServer@9.0.0
#addin nuget:?package=LocalizationProvider.Storage.SqlServer&version=9.0.0
#tool nuget:?package=LocalizationProvider.Storage.SqlServer&version=9.0.0
Supporting LocalizationProvider
If you find this library useful, cup of coffee would be awesome! You can support further development of the library via Paypal.
Localization Provider v9.0 - What's Up?
Version 9.0 modernizes the platform to .NET 10 and focuses on Admin UI productivity - most notably automatic machine translations (including translating many resources in one batch), per-resource notes for translators, and a round of performance work across resource synchronization and caching.
Tracking issue: https://github.com/valdisiljuconoks/LocalizationProvider/issues/345
What's new?
Platform
- .NET 10 target framework (Optimizely/Episerver integration updated to CMS 13)
- Nullable reference types enabled across the abstractions and core libraries
- Admin UI host integration rebuilt on Razor Pages with minimal-API service endpoints
Translations & Admin UI
- Automatic translations through a pluggable translator-provider model - ships with Azure AI / Cognitive Services. Translate a single resource straight from the edit dialog with one click.
- Batch translations (#373) - select multiple resources, pick the source and target language, optionally limit to only the empty translations, and review every proposed translation in a read-only preview before anything is saved to the database.
- Per-resource notes (#148) -
attach a translator-facing comment/hint to a resource key for extra context. Declare them in code with
the
[Notes]attribute or edit them inline in the Admin UI (shown in the resource list and in the translation edit dialog), and they round-trip through CSV import/export. - Bulk delete (#317) - select and remove multiple resources at once.
- Polished Admin UI dialogs - styled, in-app confirmation dialogs replacing native browser prompts.
Performance
- Resource synchronization reworked for large resource sets (SQL Server now syncs via a temp-table + bulk-copy path)
- Caching refactored -
CachedTranslations, targeted cache invalidation (no full flush when filling the cache), and removal of hot-path allocations andToLower()calls - Memoized expression-based resource keys and cached query/command handler chains
- BenchmarkDotNet hot-path baseline added to guard against regressions
Fixes
- Case-insensitive language-code lookup (#368)
- Various bug fixes and dependency upgrades
Localization Provider v8.0!
I'm pleased to announce that Localization Provider v8.0 is finally out. Again - took a bit longer than expected 😃
What's new?
- .NET8 set as default target
- Added provider model for translations - starting with Azure AI for automatic translations
ConfigurationContextnow supports config configuration as well (you can change some settings after you have added and configured default settings for localization provider). This is very useful in unit test scenarios when you need to adjust some settings for specific test.- Various bug fixes
- Some performance improvements (resource key comparison, pagination in Admin UI)
- Security improvements (by default upgrading insecure connections)
- Dependencies upgrade
More info in this blog post.
What is the LocalizationProvider project?
LocalizationProvider project is ASP.NET Mvc web application localization provider on steroids.
Giving you the main following features:
- Database-driven localization provider for Asp.Net Mvc applications projects
- Easy resource registrations via code
- Supports hierarchical resource organization (with help of child classes)
- Administration UI for editors to change or add new translations for required languages
Getting Started (.NET)
Bare Minimum to Start With
Below are code fragments that are essential to get started with a localization provider.
Install required packages:
> dotnet add package LocalizationProvider.AspNetCore
> dotnet add package LocalizationProvider.AdminUI.AspNetCore
> dotnet add package LocalizationProvider.Storage.SqlServer
Following service configuration (usually in Startup.cs) is required to get the localization provider working:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// add your authorization provider (asp.net identity, identity server, whichever..)
services
.AddControllersWithViews()
.AddMvcLocalization();
services.AddRazorPages();
services.AddRouting();
services.AddDbLocalizationProvider(_ =>
{
_.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
...
});
services.AddDbLocalizationProviderAdminUI(_ =>
{
...
});
}
...
}
And following setup of the application is required as a minimum (also usually located in Startup.cs):
public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseDbLocalizationProvider();
app.UseDbLocalizationProviderAdminUI();
app.UseDbLocalizationClientsideProvider(); //assuming that you like also Javascript
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapDbLocalizationAdminUI();
endpoints.MapDbLocalizationClientsideProvider();
});
}
}
Also, you can refer to sample app in GitHub for some more hints if needed.
More Detailed Help
- Getting Started
- Getting Started with AdminUI
- Localizing App Content
- Localizing View Model (with DataAnnotations attributes)
- Localizing Client-side
Getting Started - Optimizely CMS/Commerce
Supported DbLocalizationProvider Storage Providers
- SQL Server
- PostgreSql
- MongoDb
- Azure Tables
Working with DbLocalizationProvider Stuff
- Localized Resource Types
- Synchronization Process
- MSSQL Storage Configuration
- Working with Resources
- Working with Languages
- Translating System.Enum Types
- Mark Required Fields
- Foreign Resources
- Hidden Resources
- Reference Other Resource
- Cache Event Notifications
- XLIFF Support
- CSV Support
- Migrations & Refactorings
Integrating with Optimizely
- For more information about Optimizely integration - read here
Other Versions
Localization Provider v7.x Released
Please read more in this blog post!
More Info
| Product | Versions 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. |
-
net10.0
- LocalizationProvider (>= 9.0.0)
- LocalizationProvider.Abstractions (>= 9.0.0)
- Microsoft.Data.SqlClient (>= 6.1.5)
- Microsoft.Extensions.Options (>= 10.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.0.0 | 0 | 6/3/2026 |
| 8.2.6 | 67,260 | 8/1/2025 |
| 8.2.5 | 11,562 | 7/4/2025 |
| 8.2.4 | 77,353 | 12/28/2024 |
| 8.2.3 | 21,763 | 11/27/2024 |
| 8.2.2 | 7,678 | 11/15/2024 |
| 8.2.1 | 8,039 | 11/3/2024 |
| 8.2.0 | 13,234 | 9/23/2024 |
| 8.1.6 | 20,031 | 9/2/2024 |
| 8.1.5 | 4,252 | 8/27/2024 |
| 8.1.4 | 7,995 | 8/15/2024 |
| 8.1.3 | 6,216 | 8/13/2024 |
| 8.1.2 | 1,043 | 8/7/2024 |
| 8.1.1 | 1,065 | 8/4/2024 |
| 8.1.0 | 19,715 | 6/5/2024 |
| 8.0.3 | 17,114 | 5/5/2024 |
| 8.0.2 | 10,040 | 3/28/2024 |
| 8.0.1 | 5,956 | 3/5/2024 |
| 8.0.0 | 9,251 | 2/17/2024 |
| 7.5.2 | 64,464 | 12/23/2023 |