Out 客户端希望我们正在开发的应用程序的语言可以独立于操作系统设置进行配置。我已经开始使用以下方法设置本地化:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/这很好用。
现在,我正尝试通过应用程序的存储设置在所有三个应用程序中设置 CurrentUICulture(或等效项)。我扩展了ILocalize接口(interface)允许设置,WinPhone没问题,但Android和iOS让我摸不着头脑。
这是安卓代码。
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 中,我不知道如何设置语言环境。
有什么指点吗?有更好的主意吗?遗憾的是,仅使用手机的语言不是一种选择。
最佳答案
在 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 等的字符串格式,但不会影响 native 控件的外观,例如日期选择器的日期格式。
关于c# - Xamarin 表格 : Setting app language independently from OS settings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28984326/