全网整合营销服务商

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

免费咨询热线: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#  # 多语言切换  # 重绘 


相关文章: 北京网站制作的公司有哪些,北京白云观官方网站?  制作表格网站有哪些,线上表格怎么弄?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  专业商城网站制作公司有哪些,pi商城官网是哪个?  建站之星安装提示数据库无法连接如何解决?  如何生成腾讯云建站专用兑换码?  宝塔面板创建网站无法访问?如何快速排查修复?  b2c电商网站制作流程,b2c水平综合的电商平台?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  如何构建满足综合性能需求的优质建站方案?  如何快速建站并高效导出源代码?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站图片在线制作软件,怎么在图片上做链接?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在IIS管理器中快速创建并配置网站?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  公司网站设计制作厂家,怎么创建自己的一个网站?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何在腾讯云服务器快速搭建个人网站?  如何在景安服务器上快速搭建个人网站?  如何通过山东自助建站平台快速注册域名?  如何在万网开始建站?分步指南解析  成都网站制作报价公司,成都工业用气开户费用?  宝塔Windows建站如何避免显示默认IIS页面?  存储型VPS适合搭建中小型网站吗?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  三星网站视频制作教程下载,三星w23网页如何全屏?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何在建站之星绑定自定义域名?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在搬瓦工VPS快速搭建网站?  Thinkphp 中 distinct 的用法解析  建站之星在线版空间:自助建站+智能模板一键生成方案  内部网站制作流程,如何建立公司内部网站?  香港服务器租用每月最低只需15元?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何在阿里云完成域名注册与建站?  江苏网站制作公司有哪些,江苏书法考级官方网站?  为什么Go需要go mod文件_Go go mod文件作用说明  小程序网站制作需要准备什么资料,如何制作小程序?  如何高效搭建专业期货交易平台网站?  建站之星如何保障用户数据免受黑客入侵?  制作公司内部网站有哪些,内网如何建网站?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何通过智能用户系统一键生成高效建站方案?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  5种Android数据存储方式汇总 

您的项目需求

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