Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MudBlazor, DataGrid Filter change language

I would like to change the language used in the labels of the filters of the DataGrid. By default the labels are in English and I would like to have them in German.

Filter in MudBlazor

I have tried to change the general language of the application in the programme.cs with this line:

app.UseRequestLocalization("de");

like image 437
Lars Avatar asked Dec 17 '25 12:12

Lars


1 Answers

i got solver!!!

1 - 1 Update your version of Mudblazor

2 - put the following line in program.cs

builder.Services.AddTransient<MudLocalizer, CustomMudLocalizerImpl>();

3 - Create a class named CustomMudLocalizerImpl and paste the following code:

using Microsoft.Extensions.Localization;
using MudBlazor;

    internal class CustomMudLocalizerImpl : MudLocalizer
    {
        private Dictionary<string, string> _localization;

        public CustomMudLocalizerImpl()
        {
            _localization = new()
        {

            { "MudDataGrid.AddFilter", "Adicionar filtro" },
            { "MudDataGrid.Apply", "Aplicar" },
            { "MudDataGrid.Cancel", "Cancelar" },
            { "MudDataGrid.Clear", "Limpar" },
            { "MudDataGrid.CollapseAllGroups", "Recolher todos os grupos" },
            { "MudDataGrid.Column", "Coluna" },
            { "MudDataGrid.Columns", "Colunas" },
            { "MudDataGrid.contains", "Contem" },
            { "MudDataGrid.ends with", "Termina com" },
            { "MudDataGrid.equals", "Igual" },
            { "MudDataGrid.ExpandAllGroups", "Expandir todos os grupos" },
            { "MudDataGrid.Filter", "Filtro" },
            { "MudDataGrid.False", "Falso" },
            { "MudDataGrid.FilterValue", "Valor filtro" },
            { "MudDataGrid.Group", "Grupo" },
            { "MudDataGrid.Hide", "Esconder" },
            { "MudDataGrid.HideAll", "Esconder todos" },
            { "MudDataGrid.is", "é" },
            { "MudDataGrid.is after", "é após" },
            { "MudDataGrid.is before", "é antes" },
            { "MudDataGrid.is empty", "é vazio" },
            { "MudDataGrid.is not", "Não é" },
            { "MudDataGrid.is not empty", "Não é vazio" },
            { "MudDataGrid.is on or after", "está ligado ou após" },
            { "MudDataGrid.is on or before", "está ligado ou antes" },
            { "MudDataGrid.not contains", "não contém" },
            { "MudDataGrid.not equals", "não é igual" },
            { "MudDataGrid.Operator", "Operador" },
            { "MudDataGrid.RefreshData", "Atualizar dados" },
            { "MudDataGrid.Save", "Salvar" },
            { "MudDataGrid.ShowAll", "Mostrar tudo" },
            { "MudDataGrid.starts with", "Começa com" },
            { "MudDataGrid.True", "Verdadeiro" },
            { "MudDataGrid.Ungroup", "Desagrupar" },
            { "MudDataGrid.Unsort", "Ordenar" },
            { "MudDataGrid.Value", "Valor" }
        };
        }

        public override LocalizedString this[string key]
        {
            get
            {
                var currentCulture = Thread.CurrentThread.CurrentUICulture.Parent.TwoLetterISOLanguageName;
                if (currentCulture.Equals("pt", StringComparison.InvariantCultureIgnoreCase)
                    && _localization.TryGetValue(key, out var res))
                {
                    return new(key, res);
                }
                else
                {
                    return new(key, key, true);
                }
            }
        }
    }

4 - Translate and place your "culture",You can put a breakpoint and see the translation, the moment you click on the filter

Result: enter image description here

like image 141
Rafael Parenza Avatar answered Dec 19 '25 05:12

Rafael Parenza



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!