SuperAPI AI 工具集

maui-localization

通用与其它

查看项目

更新于 10-16 05:05

技能介绍

用途:为 .NET MAUI 应用提供本地化(多语言)实现指导,覆盖资源文件组织、区域性解析、运行时语言切换、RTL 布局与各平台声明。

主要能力与要点:

  1. 资源文件:用 .resx 存放多语言字符串,每种目标语言对应 AppResources.{culture}.resx,默认 AppResources.resx 需包含全部键。
  2. 必设 NeutralLanguage:在 .csproj 中设置 <NeutralLanguage>en-US</NeutralLanguage>,否则 ResourceManager 对默认区域性返回 null。
  3. 平台声明:iOS/Mac Catalyst 需在 Info.plist 添加 CFBundleLocalizations 列出支持语言,否则系统设置不显示应用语言;Windows 需在 Package.appxmanifest 的 Resources 中声明 <Resource Language="..." />;Android 自动识别 .resx,无需额外清单项。
  4. 运行时切换:x:Static 为一次性绑定,切换语言不更新;应使用 LocalizationResourceManager 配合 INotifyPropertyChanged 的绑定方式。切换区域性时需同时设置 CultureInfo.CurrentUICulture(资源查找)、CultureInfo.CurrentCulture(日期/数字)与 AppResources.Culture(ResourceManager),只设 CurrentUICulture 会导致日期数字格式不一致。
  5. RTL:在页面级设置 FlowDirection="RightToLeft",子元素用 MatchParent 继承;仅设在子元素上会破坏布局。可用 TextInfo.IsRightToLeft 检测。
  6. 区域性图片:按 banner_{culture}.png 命名,或在 .resx 中存路径。
  7. VS Code 注意:.Designer.cs 可能保存时不重新生成,需在 .csproj 添加 <CoreCompileDependsOn>PrepareResources;$(CoreCompileDependsOn)</CoreCompileDependsOn> 并在修改 .resx 后运行 dotnet build。

适用场景:需要多语言支持、运行时切换语言、RTL 语言适配或按区域性格式化日期数字的 MAUI 项目。

限制:资料未提供具体版本要求、性能数据或收费信息;示例代码需按项目实际结构调整。