
MAUI Blazor 语言设置国际化
I18nText 前言
这个软件包是在Blazor Web应用程序中本地化文本的另一种方式!
特性
- Blazor 服务器和 WebAssembly 都受支持。
- 在 Blazor Wasm 中,它甚至可以在静态 Web 主机上运行。(不需要 ASP.NET Core 主机)
- 只需要纯文本编辑器 - 不需要 .resx
- 静态类型 - IntelliSense、代码提示…
- 它支持 Blazor 组件库。你可以创建使用
Blazor I18nText
本地化的库的 NuGet 包。
新建MauiLearningBlazorApp项目
选择MAUI Blazor以及7.0的框架版本
首先安装相关包Toolbelt.Blazor.I18nText
。
在MauiProgram.cs
中添加相关依赖服务。
builder.Services.AddI18nText();
添加不同的语言
首先创建一个i18ntext
的文件夹,并在该目录下创建三个不同语言的json
语言,这里我以中文、英语、意大利语举例,分别对应的是language.cn.json
、language.en.json
与language.it.json
。
{
"HelloWord": "你好,世界!"
}
{
"HelloWord": "Hello,World!en"
}
{
"HelloWord": "Ciao, parola"
}
除了json
还可以通过csv
的方式。举个例子:
Key1,Localized text 1
本地化文本源文件的命名规则必须如下:
<Text Table Name>.<Language Code>.{json|csv}
然后通过_imports.razor
设置全局引用命名空间。
@using Toolbelt.Blazor.I18nText
@using MauiLearningBlazorApp.I18nText
然后我们修改index.razor
网页,并注入I18nText
设置其中的语言。
并添加三个不同的按钮进行来回切换。
@page "/"
@inject I18nText I18nText
@code {
language MyText = new language();
protected override async Task OnInitializedAsync()
{
MyText = await I18nText.GetTextTableAsync<language>(this);
}
}
<h1>@MyText.HelloWord</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<button class="btn btn-primary" @onclick="@(async e=>await OnChangeCurrentLang("cn"))">中文</button>
<button class="btn btn-primary" @onclick="@(async e=>await OnChangeCurrentLang("en"))">English</button>
<button class="btn btn-primary" @onclick="@(async e=>await OnChangeCurrentLang("it"))">Italian</button>
@code {
private async Task OnChangeCurrentLang(string lang)
{
await I18nText.SetCurrentLanguageAsync(lang);
}
}
测试。
测试是没问题的。
指定默认语言设置
在MauiProgram.cs
中的CreateMauiApp
中,我们通过配置RequestLocalizationOptions
来指定支持的语言以及默认的语言配置。
这里我设置的默认语言配置为en
。
builder.Services.Configure<RequestLocalizationOptions>(options => {
var supportedCultures = new[] { "en", "cn", "it" };
options.DefaultRequestCulture = new RequestCulture("en");
options.AddSupportedCultures(supportedCultures);
options.AddSupportedUICultures(supportedCultures);
});
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术