首页
视频
资源
登录
原
MAUI Blazor 语言设置国际化
2765
人阅读
2023/3/20 15:40
总访问:
2616081
评论:
0
收藏:
0
手机
分类:
.net后台框架
![](https://img.tnblog.net/arcimg/hb/a6fadc92495e44eab5dfda84fb6477f7.png) >#MAUI Blazor 语言设置国际化 [TOC] I18nText 前言 ------------ tn2>这个软件包是在Blazor Web应用程序中本地化文本的另一种方式! 特性 ------------ - Blazor 服务器和 WebAssembly 都受支持。 - 在 Blazor Wasm 中,它甚至可以在静态 Web 主机上运行。(不需要 ASP.NET Core 主机) - 只需要纯文本编辑器 - 不需要 .resx - 静态类型 - IntelliSense、代码提示… - 它支持 Blazor 组件库。你可以创建使用`Blazor I18nText`本地化的库的 NuGet 包。 新建MauiLearningBlazorApp项目 ------------ tn2>选择MAUI Blazor以及7.0的框架版本 ![](https://img.tnblog.net/arcimg/hb/c93c59b3695549bca577812cd27d596b.png) ![](https://img.tnblog.net/arcimg/hb/077888f2fbc849f8a990f77528e19fb2.png) ![](https://img.tnblog.net/arcimg/hb/ab4eaf6574744fb186aaef7b4371f328.png) tn2>首先安装相关包`Toolbelt.Blazor.I18nText`。 ![](https://img.tnblog.net/arcimg/hb/ba751c5f2ed24b00b3fb2236baab0505.png) tn2>在`MauiProgram.cs`中添加相关依赖服务。 ```csharp builder.Services.AddI18nText(); ``` 添加不同的语言 ------------ tn2>首先创建一个`i18ntext`的文件夹,并在该目录下创建三个不同语言的`json`语言,这里我以中文、英语、意大利语举例,分别对应的是`language.cn.json`、`language.en.json`与`language.it.json`。 ![](https://img.tnblog.net/arcimg/hb/4790a3daef2e4e10969b67e6bf407951.png) ```json { "HelloWord": "你好,世界!" } ``` ```json { "HelloWord": "Hello,World!en" } ``` ```json { "HelloWord": "Ciao, parola" } ``` tn>除了`json`还可以通过`csv`的方式。举个例子: ```bash Key1,Localized text 1 ``` tn>本地化文本源文件的命名规则必须如下: ```bash <Text Table Name>.<Language Code>.{json|csv} ``` tn2>然后通过`_imports.razor`设置全局引用命名空间。 ```csharp @using Toolbelt.Blazor.I18nText @using MauiLearningBlazorApp.I18nText ``` tn2>然后我们修改`index.razor`网页,并注入`I18nText`设置其中的语言。 并添加三个不同的按钮进行来回切换。 ```csharp @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); } } ``` tn2>测试。 ![](https://img.tnblog.net/arcimg/hb/b7de80bc8f8c4c439295ef17e991c303.png) ![](https://img.tnblog.net/arcimg/hb/1be7fe1af5ae417c812c598806455086.png) ![](https://img.tnblog.net/arcimg/hb/4e0c3573a1174a2980a0ad97a118bbd6.png) tn2>测试是没问题的。 tn>除了`@MyText.HelloWord`这样的调用之外,我们还可以通过`@MyText["HelloWord"]`来实现切换语言的效果。 指定默认语言设置 ------------ tn2>在`MauiProgram.cs`中的`CreateMauiApp`中,我们通过配置`RequestLocalizationOptions`来指定支持的语言以及默认的语言配置。 这里我设置的默认语言配置为`en`。 ```csharp builder.Services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new[] { "en", "cn", "it" }; options.DefaultRequestCulture = new RequestCulture("en"); options.AddSupportedCultures(supportedCultures); options.AddSupportedUICultures(supportedCultures); }); ``` ![](https://img.tnblog.net/arcimg/hb/8ad4c6e2af13436fbcd488989bdb41b0.png)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
168篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
2篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
Halcon
1篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术