如何在当前文化的基础上展示形象

时间:2014-08-07 16:59:45

标签: c# windows-phone-8 globalization currentculture currentuiculture

根据用户在其设备上的当前语言设置,我希望在CustomMessageBox内显示包含文本的图片。我不想错误地向用户显示他们不理解或不会识别的语言的图像。我意识到System.GlobalizationCurrentCultureCurrentUICulture中有两个选项。我想确保我向用户显示正确的图像,具体取决于他们期望看到的内容。我不确定使用哪种,以及具体的差异。我知道用户可以拥有一个文化集和一个不同的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
            };

            ...

1 个答案:

答案 0 :(得分:1)

您可以阅读此http://forums.asp.net/post/1080435.aspx

简而言之,CurrentCulture与货币和日期的格式有关。虽然CurrentUICulture与程序使用的ResourceManager有关。

人们可能会因为很多原因改变这两种情况,也许他们想要法语的日期格式,而英语的Windows应用程序。或者他们想要玩一个只能用日语运行的游戏,并且他们有西班牙语日期格式。

最佳选择是选择CurrentUICulture,因为有时计算机的默认日期格式与用户所在国家/地区的语言不同。