SuperAPI AI 工具集

maui-localization-theming

数据与分析

查看项目

更新于 10-16 08:36

技能介绍

用途:当 MAUI 应用需要翻译字符串、区域性格式化、从右到左(RTL)支持或运行时主题切换时使用本技能。

主要能力:将用户可见字符串放入 RESX 资源或应用已有的本地化服务;对日期、数字、货币使用区域性感知格式化;集中处理运行时语言切换并通知 UI 绑定;通过 FlowDirection 支持 RTL;将颜色、间距、样式定义为资源,用 AppThemeBinding 处理简单明暗值、用 DynamicResource 处理运行时变化的值。

使用方式:先检查现有 Resources、ResourceDictionary、App.xaml 与平台语言声明。RESX 采用默认文件加区域性文件,例如 Resources/Strings/AppResources.resx、AppResources.es.resx、AppResources.fr.resx,从 XAML 或 ViewModel 引用生成的资源而非硬编码字符串,资源键保持稳定且具描述性。运行时切换语言时设置 CultureInfo.DefaultThreadCurrentCulture 与 CultureInfo.DefaultThreadCurrentUICulture,更新生成的资源区域性属性,通知绑定字符串、重建受影响页面或使用会发出变更通知的本地化管理器,仅在用户选择后把区域性持久化到 Preferences。主题示例:<ContentPage BackgroundColor="{AppThemeBinding Light=#FFFFFF, Dark=#111111}" />、<Label TextColor="{DynamicResource PrimaryTextColor}" />,运行时可用 Application.Current!.UserAppTheme = AppTheme.Dark; 仅在用户明确选择主题时设置 UserAppTheme,系统主题用 Unspecified。

适用场景:多语言 MAUI 应用、需要运行时换语言或换主题的界面、RTL 语言布局。

限制:不要假设更改线程区域性会自动刷新所有现有绑定,现有页面通常需要通知或重建;RTL 建议多数页面用 FlowDirection="MatchParent",仅在强制特定界面时用 RightToLeft,避免资源中使用 left/right 命名,改用 start/end 语义,并检查有方向含义的图标与手势;StaticResource 仅用于运行时不变化的值。平台语言元数据需按平台确认,如 iOS/Mac Catalyst 的 CFBundleLocalizations、Android 的应用语言/资源配置、Windows 的包/资源语言元数据。具体收费、价格与平台支持细节暂未提供。