茅断卉 发表于 2026-3-9 08:40:09

[Maui] 造轮子——前言、本地化

前言

新的一年开始了,公司提了新的要求:

[*]国产化
[*]国际化
开发部的应对是:从wpf转换Maui:

[*]安卓版也是国产化
[*]国际化就是本地化,弄个多国语言的事情
话说华为的鸿蒙,为了国产化,在华为P40手机上运行了Maui的缺省项目,天真的以为鸿蒙支持Maui Android。于是去买了个华为的平板,然后悲剧了。亲测:P40手机的鸿蒙4.2支持,新平板的5.0、6.0不支持。要不要为了这个牛绳去买头牛,学一般华为的那什么javascript的超集typescript的超集,叫什么来着?
谁能推荐个安卓平板?
华为的事情是个庭外话,题内化就是开始新一轮的造轮子。
你说,轮子到处都是,非得自己造?
是的,有毛病: 不相信别人,别人走过的路,自己也要走,除非自己不会走。
废话到此为止。
本地化

微软本地化文档,报了个到。
一、准备工作

[*]新建项目两个,分别为LunZi和Demo;删除iOS、MacCatalyst相关的东西。(话说微软就不能让我选择一下要支持的操作系统吗?非得让我手动删除?)
[*]LunZi项目新建文件夹Resources,并添加三个资源文件(Resource.resx,Resource.en.resx,Resource.zh-Hans.resx)
[*]修改 Demo 项目的 Windows 的 Package.appxmanifest文件,将
    替换为
                                                表示本Demo支持中英文。
二、LunZi添加资源

[*]双击 Resource.resx文件
[*]单击 +
[*]输入
https://img2024.cnblogs.com/blog/10915/202603/10915-20260308114703826-235861313.png
[*]添加后编辑
https://img2024.cnblogs.com/blog/10915/202603/10915-20260308114850780-1994865278.png
[*]将资源的属性从internal改为public
如此循环往复,便是添加资源。
备注一下:回头弄个程序来添加资源。
三、Demo使用资源

[*]添加项目引用,引用LunZi
[*]修改MainPage.xaml
添加命名空间
    xmlns:lunzi="clr-namespace:LunZi.Resouces;assembly=LunZi"使用资源
      整个文件变成
               
[*]运行
https://img2024.cnblogs.com/blog/10915/202603/10915-20260308121229794-777613244.png
看样子,使用了本地是中国
四、中英文动态切换

[*]修改页面
                                                      
[*]修改代码
using System.Globalization;namespace Demo;public partial class MainPage : ContentPage{    public MainPage()    {      InitializeComponent();      this.LabelTest.Text = LunZi.Resouces.Resource.Test;    }    private void BtnEn_Clicked(object sender, EventArgs e)    {      SetCulture("en-US");      this.LabelTest.Text = LunZi.Resouces.Resource.Test;    }    private void BtnCn_Clicked(object sender, EventArgs e)    {      SetCulture("zh-Hans");      this.LabelTest.Text = LunZi.Resouces.Resource.Test;    }    private void SetCulture(string cultureCode)    {      var culture = new CultureInfo(cultureCode);      Thread.CurrentThread.CurrentCulture = culture;      Thread.CurrentThread.CurrentUICulture = culture;    }}
[*]运行
https://img2024.cnblogs.com/blog/10915/202603/10915-20260308123526109-1669912343.png
单击 English
https://img2024.cnblogs.com/blog/10915/202603/10915-20260308123612093-916568580.png
好了,就这样了。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

揿纰潦 发表于 前天 21:58

收藏一下   不知道什么时候能用到

骆贵 发表于 前天 23:10

谢谢分享,试用一下

山芷兰 发表于 11 小时前

前排留名,哈哈哈
页: [1]
查看完整版本: [Maui] 造轮子——前言、本地化