前言
最近公司使用Blazor(UI:Telerik UI For Blazor)进行专案开发,开发过程中踩到坑,
于是写下来与大家分享(❁´◡`❁)
Blazor WebAssembly Localization 繁体化
Program.cs
builder.Services.AddTelerikBlazor();#region Localization Part 1builder.Services.AddSingleton(typeof(ITelerikStringLocalizer), typeof(CustomStringLocalizer));var host = builder.Build();await SetCultureAsync(host);await host.RunAsync();#endregion#region 设定语系static async Task SetCultureAsync(WebAssemblyHost host){ var cultureName = "zh-TW"; //需要建立相对应的resx档案 if (cultureName != null) { var culture = new CultureInfo(cultureName); CultureInfo.DefaultThreadCurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; }}#endregion
2.建立 CustomStringLocalizer.cs
之后可用来切换语系用
namespace BlazorApp1.Client.Services{ public class CustomStringLocalizer : ITelerikStringLocalizer { public string this[string name] { get { return GetStringFromResource(name); } } public string GetStringFromResource(string key) { return TelerikMessages.ResourceManager.GetString(key, TelerikMessages.Culture); } }}
3.建立 TelerikMessages.zh-TW.resx
档案
我是使用官方给的範例文件里的英文版本去更改为繁体的 telerik-blazor-ui
4.修改resx里面的文件路径为自己的专案路径
5.Client.csproj
加入这段(我就是少加这段Debugger了好久...)
<PropertyGroup><BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData></PropertyGroup>
6.最后看看繁体化的成果 ( •̀ ω •́ )y
小结
看了官方好多文件东拼西凑终于完成Telerik UI For Blazor 的繁体化,有了这个就可以让很多没有办法custom的地方繁体化了! 希望对大家有帮助~