C# 如何在iOS/Android上获取当前设备语言?
我需要知道iOS/Android设备上使用的是什么语言,因为我在Xamarin Studio中构建了一个支持三种不同语言的单游戏应用程序。如果设备的当前语言为英语,则应用程序将以英语显示文本,但如果设备的当前语言为法语,则文本将以法语而不是英语显示。如果我的应用程序不支持设备的当前语言(例如中文),则文本的默认语言将为英语 如何在Xamarin Studio的iOS/Android上获取当前设备语言?1)打开设置,在主屏幕上点击设置 2) 轻按常规,在下一屏幕上轻按常规 3) 选择语言和地区。如果您使用的是iOS 8或更高版本,请向下滚动并点击语言和区域 4) 轻触设备语言,在下一屏幕上,轻触“[设备]语言”C# 如何在iOS/Android上获取当前设备语言?,c#,android,ios,xamarin,C#,Android,Ios,Xamarin,我需要知道iOS/Android设备上使用的是什么语言,因为我在Xamarin Studio中构建了一个支持三种不同语言的单游戏应用程序。如果设备的当前语言为英语,则应用程序将以英语显示文本,但如果设备的当前语言为法语,则文本将以法语而不是英语显示。如果我的应用程序不支持设备的当前语言(例如中文),则文本的默认语言将为英语 如何在Xamarin Studio的iOS/Android上获取当前设备语言?1)打开设置,在主屏幕上点击设置 2) 轻按常规,在下一屏幕上轻按常规 3) 选择语言和地区。如
这会解决你的问题。但是,如果这不能解决您的问题,请参见以编程方式获取语言,在Android上您可以使用:
Locale.Default.GetDisplayLanguage(Locale.Default)
在iOS上:
var userLang = NSLocale.CurrentLocale.LocaleIdentifier;
您可以使用CultureInfo:
CultureInfo.CurrentCulture.TwoLetterISOLanguageName
Plus是跨平台的。可能的副本不起作用。我在iOS上收到了这样一条错误消息:名称“NSLocale”在当前上下文(CS0103)中不存在,而Android的错误消息:“Locale”由于其保护级别(CS0122)而无法访问。请确保您对每个名称都有正确的用法。两者都是公共的和可用的:如果
Locale
也在另一个名称空间/程序集中定义,您可以完全限定它“Java.Util.Locale.Default.GetDisplayLanguage(Locale.Default)
这两种语言的返回格式非常不同。NSLocale.CurrentLocale.LocaleIdentifier
将返回“en\u US”而Locale.Default.GetDisplayLanguage(Locale.Default)
将返回“English”