If you're trying to localize the filter options of MudDataGrid
and it's not working, you're likely using the old localization keys, like:
"MudDataGrid.contains"
These no longer work in newer versions of MudBlazor (v7+). The identifiers have changed to use underscores, like:
"MudDataGrid_Contains"
dotnet add package MudBlazor
Program.cs
:builder.Services.AddTransient<MudLocalizer, CustomMudLocalizerImpl>();
CustomMudLocalizerImpl
with the updated keys:using Microsoft.Extensions.Localization;
using MudBlazor;
using System.Globalization;
using System.Threading;
internal class CustomMudLocalizerImpl : MudLocalizer
{
private readonly Dictionary<string, string> _localization;
public CustomMudLocalizerImpl()
{
_localization = new()
{
{ "MudDataGrid_AddFilter", "Agregar filtro" },
{ "MudDataGrid_Apply", "Aplicar" },
{ "MudDataGrid_Cancel", "Cancelar" },
{ "MudDataGrid_Clear", "Limpiar" },
{ "MudDataGrid_CollapseAllGroups", "Colapsar todos los grupos" },
{ "MudDataGrid_Column", "Columna" },
{ "MudDataGrid_Columns", "Columnas" },
{ "MudDataGrid_Contains", "Contiene" },
{ "MudDataGrid_NotContains", "No contiene" },
{ "MudDataGrid_Equals", "Igual a" },
{ "MudDataGrid_NotEquals", "Distinto de" },
{ "MudDataGrid_StartsWith", "Empieza con" },
{ "MudDataGrid_EndsWith", "Termina con" },
{ "MudDataGrid_IsEmpty", "Está vacío" },
{ "MudDataGrid_IsNotEmpty", "No está vacío" },
{ "MudDataGrid_Is", "Es" },
{ "MudDataGrid_IsNot", "No es" },
{ "MudDataGrid_IsAfter", "Es después de" },
{ "MudDataGrid_IsBefore", "Es antes de" },
{ "MudDataGrid_IsOnOrAfter", "Es en o después de" },
{ "MudDataGrid_IsOnOrBefore", "Es en o antes de" },
{ "MudDataGrid_Filter", "Filtro" },
{ "MudDataGrid_FilterValue", "Valor del filtro" },
{ "MudDataGrid_Group", "Grupo" },
{ "MudDataGrid_RefreshData", "Actualizar datos" },
{ "MudDataGrid_Save", "Guardar" },
{ "MudDataGrid_ShowAll", "Mostrar todo" },
{ "MudDataGrid_Hide", "Ocultar" },
{ "MudDataGrid_HideAll", "Ocultar todo" },
{ "MudDataGrid_Ungroup", "Desagrupar" },
{ "MudDataGrid_Unsort", "Quitar ordenamiento" },
{ "MudDataGrid_True", "Verdadero" },
{ "MudDataGrid_False", "Falso" },
{ "MudDataGrid_Value", "Valor" }
};
}
public override LocalizedString this[string key]
{
get
{
var culture = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName;
if (culture.Equals("es", StringComparison.InvariantCultureIgnoreCase)
&& _localization.TryGetValue(key, out var translated))
{
return new LocalizedString(key, translated);
}
return new LocalizedString(key, key, true);
}
}
}
To debug the keys MudBlazor is actually requesting, you can add a breakpoint inside the indexer this[string key]
and inspect which keys are triggered when you open the filter dialog.
Original idea by Rafael Parenza — Improved here with updated localization keys for MudBlazor v7+.