根据用户在其设备上的当前语言设置,我希望在CustomMessageBox
内显示包含文本的图片。我不想错误地向用户显示他们不理解或不会识别的语言的图像。我意识到System.Globalization
,CurrentCulture
和CurrentUICulture
中有两个选项。我想确保我向用户显示正确的图像,具体取决于他们期望看到的内容。我不确定使用哪种,以及具体的差异。我知道用户可以拥有一个文化集和一个不同的UI文化集。
C#
//string resourceLanguage = System.Globalization.CultureInfo.CurrentCulture.ToString();
string resourceLanguage = System.Globalization.CultureInfo.CurrentUICulture.ToString();
string imagePath = "Assets/Screenshots/" + resourceLanguage + "/" + Constants.inAppScreenshot + ".png";
CustomMessageBoxContent cmbc = new CustomMessageBoxContent(); //a custom class I defined to handle the image
CustomMessageBox messageBox = new CustomMessageBox()
{
Caption = "\n" + AppResources.App_Caption,
Message = "\n" + AppResources.App_Message + "\n",
LeftButtonContent = AppResources.App_OK,
Content = cmbc.CreateImage(imagePath),
FlowDirection = App.flow
};
...
答案 0 :(得分:1)
您可以阅读此http://forums.asp.net/post/1080435.aspx
简而言之,CurrentCulture
与货币和日期的格式有关。虽然CurrentUICulture
与程序使用的ResourceManager有关。
人们可能会因为很多原因改变这两种情况,也许他们想要法语的日期格式,而英语的Windows应用程序。或者他们想要玩一个只能用日语运行的游戏,并且他们有西班牙语日期格式。
最佳选择是选择CurrentUICulture
,因为有时计算机的默认日期格式与用户所在国家/地区的语言不同。