Out客户端希望我们正在开发的应用程序的语言可以独立于操作系统设置进行配置。我已经开始使用how-to:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/设置本地化,这很好用。
现在,我正在尝试从应用程序的存储设置中,在所有三个应用程序中设置CurrentUICulture (或等效设置)。我已经扩展了ILocalize界面以允许设置,WinPhone不成问题,但是Android和iOS让我摸不着头脑。
这是android代码。
public class Localize : AppResources.ILocalize
{
public CultureInfo CurrentUICulture
{
get
{
var androidLocale = Locale.Default;
var netLanguage = androidLocale.ToString().Replace("_", "-"); // turns fi_FI into fi-FI
return new CultureInfo(netLanguage);
}
set
{
var locale = value.ToString().Replace("-", "_");
Locale.Default = new Locale(locale);
}
}
}它可以部分工作,但由于某些我不知道的原因,只翻译了一些资源字符串(可能是在xaml中设置的那些?)。
在iOS中,我不知道如何设置语言环境。
有什么建议吗?有更好的主意吗?不幸的是,只使用手机的语言不是一种选择。
发布于 2017-03-10 19:14:36
在iOS上,我成功地将CultureInfo设置如下:
CultureInfo newCulture = // whatever :)
// make sure the following is executed on the UI thread
System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = newCulture;这会影响DateTime等的字符串格式,但不会影响本机控件的外观,如日期选取器的日期格式。
https://stackoverflow.com/questions/28984326
复制相似问题