全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C# MAUI怎么做国际化 MAUI多语言支持教程

MAUI国际化通过.resx资源文件、Culture切换和XAML绑定实现,需设Build Action为Embedded Resource、严格命名、在MauiProgram中预设Culture,并用OnPropertyChanged刷新绑定。

MAUI 的国际化主要靠 资源文件(.resx) + Culture 切换 + 绑定支持 实现,不依赖第三方库也能完成基础多语言切换,关键是把资源管理好、Culture 设置对、XAML 中用对绑定方式。

准备多语言资源文件

在 MAUI 项目中新建 Resources 文件夹(推荐),然后添加默认资源文件和对应语言的本地化版本:

  • AppResources.resx —— 默认语言(如中文简体),放在 Resources 文件夹下
  • AppResources.zh-Hans.resx —— 中文简体(可选,与默认一致时可省略)
  • AppResources.en-US.resx —— 英文美国
  • AppResources.es-ES.resx —— 西班牙语西班牙

注意:所有 .resx 文件的 Build Action 必须设为 "Embedded Resource";文件名必须严格匹配 基名.区域名.resx 格式;Visual Studio 会自动生成强类型类 AppResources,供 C# 和 XAML 使用。

在 XAML 中使用本地化字符串

MAUI 支持直接在 XAML 中通过静态资源引用 AppResources 类的属性:

  • 先在 XAML 根节点添加命名空间:xmlns:resources="clr-namespace:YourApp.Resources"
  • 然后这样写文本:Text="{x:Static resources:AppResources.LoginButton}"
  • 按钮/标签等控件都适用,无需额外代码

⚠️ 注意:XAML 不支持动态刷新(比如切语言后界面不会自动重绘),需要手动触发或配合 MVVM 重绑定(见下一条)。

运行时切换语言并刷新界面

切换语言本质是设置当前线程的 CultureInfo,再通知 UI 重新加载资源。关键三步:

  • 设置 Thread.CurrentThread.CurrentCulture.CurrentUICulture
  • 调用 ResourceManager.Current.ChangeCulture(newCulture)(MAUI 7+ 自动支持)
  • 刷新当前页面:可 Navigation.PopAsync()PushAsync(new MainPage()),或更轻量地——
    在 ViewModel 中用 OnPropertyChanged(nameof(LocalizedText)) 触发绑定更新(需将资源访问封装为属性)

示例(ViewModel 中):

private string _greeting;
public string Greeting => AppResources.HelloWorld; // 直接读取,但不会自动更新

改成可通知的写法:

public string Greeting => AppResources.HelloWorld;
// 切语言后调用:
 OnPropertyChanged(nameof(Greeting));

进阶:自动识别系统语言 + 持久化用户选择

首次启动时读系统语言:

  • Thread.CurrentThread.CurrentUICulture.Name 获取当前 UI 区域名
  • 或跨平台更稳的方式:Microsoft.Maui.Devices.DeviceInfo.Platform + 平台特定代码(如 Android 的 Java.Util.Locale.Default

保存用户选择:

  • Preferences.Set("LanguageCode", "en-US") 记录偏好
  • 下次启动时读取并提前设置 Thread.CurrentThread.CurrentUICulture,最好在 MauiProgram.CreateMauiApp() 之后、MainWindow 创建前完成

基本上就这些。不复杂但容易忽略 Build Action 和 Culture 设置时机 —— 这两点错一个,多语言就静默失效。


# java  # android  # app  # ai  # win  # microsoft  # 多语言  # 本地化  # c#  # 多语言切换  # 重绘 


相关文章: 如何选择高效响应式自助建站源码系统?  如何快速登录WAP自助建站平台?  建站之星如何保障用户数据免受黑客入侵?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  香港服务器租用每月最低只需15元?  建站之星24小时客服电话如何获取?  广平建站公司哪家专业可靠?如何选择?  网站制作员失业,怎样查看自己网站的注册者?  Python多线程使用规范_线程安全解析【教程】  如何选择CMS系统实现快速建站与SEO优化?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何用wdcp快速搭建高效网站?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  已有域名如何快速搭建专属网站?  如何配置支付宝与微信支付功能?  如何在香港免费服务器上快速搭建网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  盐城做公司网站,江苏电子版退休证办理流程?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  如何在Windows服务器上快速搭建网站?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何在IIS7上新建站点并设置安全权限?  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何用PHP工具快速搭建高效网站?  如何用美橙互联一键搭建多站合一网站?  建站之星后台管理:高效配置与模板优化提升用户体验  浅谈Javascript中的Label语句  网页设计网站制作软件,microsoft office哪个可以创建网页?  如何快速重置建站主机并恢复默认配置?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何选择靠谱的建站公司加盟品牌?  如何获取上海专业网站定制建站电话?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  香港服务器租用费用高吗?如何避免常见误区?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何快速搭建高效WAP手机网站?  红河网站制作公司,红河事业单位身份证如何上传?  如何彻底卸载建站之星软件?  小型网站建站如何选择虚拟主机?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  简单实现Android文件上传  家具网站制作软件,家具厂怎么跑业务?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  建站之星2.7模板快速切换与批量管理功能操作指南  如何通过远程VPS快速搭建个人网站?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。