首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于xamarin的移动跨平台定位与iOS发布

基于xamarin的移动跨平台定位与iOS发布
EN

Stack Overflow用户
提问于 2014-04-11 05:45:30
回答 3查看 5.1K关注 0票数 15

我在Xamarin有一个针对安卓、iOS和windows的项目。我使用core (PCL库)在不同的平台之间共享公共代码。我在核心库中添加了资源文件(.net资源) .Resx,并在其中一个ViewModel中读取代码片段后使用的特定于区域性的字符串:

代码语言:javascript
复制
public string GetString() 
{  
    // CommonResources is the name of my resource file   
    ResourceManager resManager = new ResourceManager(typeof(CommonResources));   
    return resManager.GetString("LoginLabel",CultureInfo.CurrentCulture); 
}

"LoginLabel“是我的资源键,它的值是”登录“(英文)和"inloggen”(荷兰语)。

我在PCL项目中为英语和荷兰语创建了两个资源文件CommonResources。CommonResources.resx

CommonResources.nl-NL.resx

在android、iOS和windows中,我将文化设置为:

代码语言:javascript
复制
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-NL");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("nl-NL");

这对于Android和windows手机来说很好。

但对于iOS来说,这是行不通的。它总是从英文文件返回资源字符串。区域性设置正确,并以调试模式显示。但不知何故,它无法从荷兰资源加载资源字符串。

所以问题是,是否可以在所有平台上使用PCL来本地化字符串(.Net方式)?有人知道吗?提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-10-15 19:51:35

对于Xamarin项目的本地化,我使用了来自微软的多语言Android (详见)和T4模板,将输出从工具包转换为可用于安卓和iOS的格式。

教程对这个过程有一个非常棒的概述,它基于代码项目。

票数 2
EN

Stack Overflow用户

发布于 2015-01-19 11:30:23

以下任一项:

  • 实际上,您并没有在iOS上设置iOS。
  • 您正在线程A上设置,并在线程B上检索它。

试试这个:

代码语言:javascript
复制
public string GetString() 
{
    Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-NL");
    Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("nl-NL");

    // CommonResources is the name of my resource file   
    ResourceManager resManager = new ResourceManager(typeof(CommonResources));   
    return resManager.GetString("LoginLabel",CultureInfo.CurrentCulture); 
}
票数 0
EN

Stack Overflow用户

发布于 2015-03-12 07:07:59

你在真正的设备上测试过吗?在模拟器中,不可能改变文化。我的语言文件也有类似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23004414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档