You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mac版Xamarin中用MultilingualPlugin运行时切换至泰语?

Mac版Xamarin应用运行时切换泰语失效的解决方法

问题回顾

在Mac版Xamarin应用中尝试通过代码切换至泰语("th"),已实现TranslateExtension、配置资源文件并在App构造函数中设置文化,但应用仍显示英文。

排查与解决步骤

1. 修正资源文件命名与格式

你的泰语资源文件名存在错误:

  • 正确命名应为 AppResources.th.resx(需与默认资源文件AppResources.resx保持前缀一致,且带.resx后缀),而非AppResource.th。
  • 确保资源文件的访问修饰符设置为Public(在资源文件设计视图顶部的"访问修饰符"下拉框选择Public),否则ResourceManager无法读取本地化资源。

2. 完善线程文化设置

仅设置CrossMultilingual.Current.CurrentCultureInfo不足以覆盖Mac平台的线程文化,需补充设置线程默认文化:
修改App.cs构造函数代码:

public App()
{
    InitializeComponent();
    
    var thaiCulture = new CultureInfo("th");
    // 设置插件文化
    CrossMultilingual.Current.CurrentCultureInfo = thaiCulture;
    // 设置线程默认文化
    CultureInfo.DefaultThreadCurrentCulture = thaiCulture;
    CultureInfo.DefaultThreadCurrentUICulture = thaiCulture;
     
    MainPage = new NavigationPage(new LoginPage());
}

3. 验证资源键一致性

确认AppResources.th.resx中存在与英文资源完全匹配的键名(例如你使用的Sign In,需保证拼写、空格完全一致),避免因键名不匹配导致返回原键值(英文)。

4. 配置Mac项目本地化支持

在Mac项目的Info.plist中添加泰语本地化声明:
打开Info.plist,添加CFBundleLocalizations数组类型项,将th作为数组元素加入,确保系统识别应用支持泰语本地化。

5. 调试验证

在Debug模式下运行,若资源键不存在会抛出异常,可快速定位是否存在资源缺失或键名错误问题。


内容的提问来源于stack exchange,提问作者A. WHY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:50:28