Как показать изображение на основе текущей культуры
У меня есть изображения, которые я хотел бы показать в CustomMessageBox
, которые имеют текст внутри них, основываясь на текущих настройках языка пользователя на их устройстве. Я не хочу делать ошибку, показывая пользователю изображение на языке, который он не понимает или не распознает. Я понял, что есть два варианта System.Globalization
, CurrentCulture
а также CurrentUICulture
, Я хочу быть уверен, что показываю правильное изображение пользователю в зависимости от того, что он ожидает увидеть. Я не уверен, что использовать, и конкретные различия. Я знаю, что у пользователя может быть набор культур и другой набор интерфейсов.
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 ответ
Вы можете прочитать это http://forums.asp.net/post/1080435.aspx
Короче говоря, CurrentCulture
имеет отношение к форматированию валюты и даты. В то время как CurrentUICulture
имеет отношение к ResourceManager, который используют программы.
Люди могут изменить оба этих параметра по многим причинам, возможно, им нужен формат даты на французском языке, а приложения Windows - на английском. Или они хотят играть в игру, которая может быть запущена только на японском языке, и у них есть испанский формат даты.
Лучшим вариантом будет выбрать CurrentUICulture
потому что иногда компьютеры приходили с форматом даты по умолчанию на языке, отличном от страны пользователя.