如何在 Blazor WebAssembly 中本地化 MudBlazor DataGrid?

2023-12-19

我正在使用 MudBlazor 组件开发 Blazor (.NET 7) WebAssembly 应用程序,并且想知道如何以及是否可以将 f.ex DataGrid 本地化为“is-IS”?我已经使用 .resx 文件完成了基本本地化。

提前致谢, 奥拉维尔

我创建了一个 WebAssemblyHostExtension 并在 Program.cs 中引用它,使用 IStringLocalizer 工作得很好,但 MudBlazor 组件只是英文的。我缺少什么?

问候, 奥拉维尔

... builder.Services.AddBlazoredLocalStorage();

var host = builder.Build(); 等待主机.SetDefaultCulture(); // 检索本地存储值并设置线程的当前区域性。 等待主机.RunAsync();

公共异步静态任务 SetDefaultCulture(此 WebAssemblyHost 主机) {

    CultureInfo cultureInfo;

    try
    {
        var localStorage = host.Services.GetRequiredService<ILocalStorageService>();
        var cultureString = await localStorage.GetItemAsync<string>("culture");

        if (!string.IsNullOrWhiteSpace(cultureString))
        {
            cultureInfo = new CultureInfo(cultureString);
        }
        else
        {
            cultureInfo = new CultureInfo(LocalizerSettings.NeutralCulture.Name);
        }
    }
    catch(Exception ex
    {
        cultureInfo = new CultureInfo(LocalizerSettings.NeutralCulture.Name);
    }

    CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
    CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
}

在 Blazor wasm 托管client项目:

  1. 将这些行添加到程序.cs :

    CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR"); builder.Services.AddTransient();

  2. 将具有 true 值的 BlazorWebAssemblyLoadAllGlobalizationData 添加到客户端项目的 .csproj 文件中地产集团部分: BlazorWebAssemblyLoadAllGlobalizationData>true

  3. 创建一个 DictionaryMudLocalizer 类:

    公共类 DictionaryMudLocalizer : MudLocalizer { 私有只读字典 _localization;

     public DictionaryMudLocalizer()
     {
         _localization = new()
         {
             { "MudDataGrid.Unsort", "حذف سورت" },
         };
     }
    
     public override LocalizedString this[string key]
     {
         get
         {
             _localization.TryGetValue(key, out var res);
             return new(key, res);
         }
     }
    

    }

要使其使用自定义本地化程序,CurrentUICulture 不能是任何英语文化

https://mudblazor.com/features/localization#dictionary-based-example https://mudblazor.com/features/localization#dictionary-based-example

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Blazor WebAssembly 中本地化 MudBlazor DataGrid? 的相关文章

随机推荐

  • 如何将我的 godaddy 域名链接到 Windows Azure [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我四处搜寻 但仍然找不到任何有关如何执行此操作的信息 理想情况下 我想知道如何链接多个域名 因为我现在使用 SDK 1 3 有人对如何执行此操作有任何
  • 视频上传并在 Django 网站上显示

    我有一个上传视频的模型 我想在浏览器中显示相同的视频 但不知何故我无法做到 请帮助我 我制作了一个名为 部署 的应用程序 我在其中上传视频并保存它 请告诉我哪里做错了以及应该做什么 我希望上传的视频应该显示在页面上 并且应该有一个下载选项
  • 为什么我安装 rmagick 时遇到问题

    在 Ruby 1 8 7 和 Rails 2 3 5 上我得到 gem install rmagick ERROR Error installing rmagick ERROR Failed to build gem native exte
  • SQL语法区分大小写吗?

    SQL 区分大小写吗 我用过MySQL https en wikipedia org wiki MySQL and SQL 服务器 https en wikipedia org wiki Microsoft SQL Server这两者似乎都
  • 什么是 uber JAR 文件?

    我正在阅读 Maven 文档并偶然发现了这个名字uber jar 一个是什么意思uber jar是什么意思以及它的特点 优点是什么 ber德语单词是above or over 它实际上与英语同源over Hence in this cont
  • 如何匹配小于或等于100的数字?

    我想匹配一个小于或等于 100 的数字 它可以是 0 100 之间的任何数字 但正则表达式不应该匹配大于 100 的数字 如 120 130 150 999 等 Try this b 0 1 9 0 9 100 b 解释 b Assert
  • PHP 致命错误:调用未定义的函数 mysqli_stmt_get_result()

    我不断收到错误 PHP Fatal error Call to undefined function mysqli stmt get result 我正在使用 PHP 版本 5 6 并在我的托管提供商 c 面板中启用了扩展 mysqlind
  • XSelectInput 不适用于 ButtonPressEvents,怎么办?

    我正在用 C 语言编写一个简单的程序 我想捕获正在发生的所有鼠标和键盘事件 我尝试使用 XGrabPointer 但它会导致锁定屏幕 并且我无法转到其他应用程序 我尝试使用 XSelectInput 现在我成功接收键盘事件 但没有收到任何鼠
  • 什么是从虚拟基类继承的虚拟函数的“虚拟 thunk”?

    当我尝试访问从虚拟基类继承的派生类对象的内存布局时 出现了问题 编程环境 GNU Linux 3 19 0 32 generic x86 64编译器 gcc 4 8 4 virtual base class class Base publi
  • 有模板方法但不公开实现

    我在 TFRuntime h 中有一个函数 class TFRuntime template
  • 在 C++ 中,std::end 对于所有容器类型都保证为 O(1) 吗? [复制]

    这个问题在这里已经有答案了 如果一个容器可能包含大量项目 从性能角度来看 应该写 for auto p std begin container p std end container p 或者应该在循环之外访问容器的末端 const aut
  • 通过反射动态调用textboxfor

    我想做的最终结果是通过反映对象及其属性来动态构建表单 我已经创建了调用 TextBoxFor 和 CheckBoxFor 等的 HtmlHelper 方法 但现在我需要帮助弄清楚如何在将属性传递给 Html TextBoxFor 时正确反映
  • Windows 与 fork() 最接近的东西是什么?

    我想这个问题已经说明了一切 我想在 Windows 上 fork 最相似的操作是什么以及如何使用它 Cygwin http www cygwin com Windows 上有功能齐全的 fork 因此 如果您可以接受使用 Cygwin 那么
  • 从 Spark 导出 JSON 并输入到 R 中

    我已将 Spark 中的一些数据写入 JSON 文件 并且正在努力将其导入 R 中 我无法使用 R 中的任何传统 JSON 包导入它 library jsonlite bids lt fromJSON win rate sample jso
  • Safari 中不支持 XSLTProcessor() 吗?

    无论出于何种原因 我都无法得到XSLTProcessor 一直工作 这是我的JS xsltProcessor new XSLTProcessor xsltProcessor importStylesheet xmlRequest respo
  • 在 ffmpeg 中从单个图像创建特定持续时间的视频[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 不使用霍夫圆检测圆

    我有一个圆的图像 我想找到该圆但不使用霍夫圆 我找到了一个方法 链接here https math stackexchange com questions 675203 calculating centre of rotation give
  • PHP,启用 ZTS、Pthreads

    我需要在 php 中启用 ZTS 所以我使用 enable maintainer zts 选项从源代码重新编译了 php 我现在有 php v PHP 7 0 11 cli built Oct 3 2016 12 19 10 ZTS Cop
  • 如何在iFrame中的jsf页面中显示pdf文档

    谁能帮我只在 iframe 中的 JSF 页面中显示 PDF 文档 提前致谢 Suresh 只需使用通常的方式 如果您的问题是 PDF 不在WebContent 而是位于磁盘文件系统甚至数据库中的其他位置 那么您基本上需要一个Servlet
  • 如何在 Blazor WebAssembly 中本地化 MudBlazor DataGrid?

    我正在使用 MudBlazor 组件开发 Blazor NET 7 WebAssembly 应用程序 并且想知道如何以及是否可以将 f ex DataGrid 本地化为 is IS 我已经使用 resx 文件完成了基本本地化 提前致谢 奥拉