我有一个网站,我需要根据两个字符的语言名称显示当前文化中的一些语言名称。
例如,当文化为法语时,我需要显示:
- fr -> 法语
- zh -> 英语
- de -> 阿勒曼
在德国(de)文化中
- fr -> 法语
- zh -> 英语
- de -> 阿勒曼
...
currentThread 文化已经是正确的(意味着我处于“FR”本地化)。
问题是,如果我在法国文化中并且我这样做:
System.Globalization.CultureInfo.GetCultureInfo("de")
我收到这个对象:
Calendar: {System.Globalization.GregorianCalendar}
CompareInfo: {CompareInfo - de}
CultureTypes: NeutralCultures | InstalledWin32Cultures | FrameworkCultures
DateTimeFormat: {System.Globalization.DateTimeFormatInfo}
DisplayName: "German"
EnglishName: "German"
IetfLanguageTag: "de"
IsNeutralCulture: true
IsReadOnly: true
KeyboardLayoutId: 7
LCID: 7
Name: "de"
NativeName: "Deutsch"
NumberFormat: {System.Globalization.NumberFormatInfo}
OptionalCalendars: {System.Globalization.Calendar[1]}
Parent: {}
TextInfo: {TextInfo - de}
ThreeLetterISOLanguageName: "deu"
ThreeLetterWindowsLanguageName: "DEU"
TwoLetterISOLanguageName: "de"
UseUserOverride: false
我希望显示名称在当前语言环境中(所以“Allemand”)。
我确定这是可能的,我是否缺少语言包?在哪个级别?视窗?ASP?MVC?或者我应该使用不同的代码?