Механизм PowerShell был разработан, чтобы быть легко встроенным в приложение для создания его scriptable. На самом деле PowerShell CLI является просто основанным на тексте интерфейсом к механизму.
Редактирование: См. https://devblogs.microsoft.com/powershell/making-applications-scriptable-via-powershell /
Используйте класс RegionInfo
в пространстве имен System.Globalization
:
bool isMetric = RegionInfo.CurrentRegion.IsMetric;
Если вам нужен конкретный регион, вы можете использовать одно из следующих :
// from a CultureInfo
CultureInfo culture = ...;
RegionInfo r = new RegionInfo(culture.Name);
// from a string
RegionInfo r = new RegionInfo("us");
Отчасти проблема заключается в том, что даже если вы используете их RegionInfo, не все в регионе используют одну и ту же систему. В США ученые часто используют метрики в своих исследованиях, а здесь, в Канаде, это немного смешанное, поскольку мы получаем много упаковок для пищевых продуктов из США, но мы обучаем наших детей метрическим единицам (но только с недавнего времени - мои родители
При этом вы можете сделать справедливое предположение, используя класс RegionInfo .
Похоже, что уже есть реализация в System.Globalization.RegionInfo
( regionInfo.IsMetric
).
Вы могли бы ] используйте класс CultureInfo
, который может возвращать Culture
операционной системы, в которой вы работаете - обычно в формате en-US
en- GB
de-DE
и т. Д.
Культуры чаще используются для перевода приложений с одного языка на другой в зависимости от культуры операционной системы.
Это все для определенной локализации - вы можете прочитать некоторые учебные пособия и статьи по этому поводу (например, здесь ).
Это свойство класса RegionInfo
:
// en-US, en-GB, de-DE etc.
string cultureName = CultureInfo.CurrentCulture.Name;
RegionInfo regionInfo = new RegionInfo(cultureName);
Console.WriteLine("You prefer to see {0}", regionInfo.IsMetric ? "metric" : "imperial");
Для «удара в темноте» достаточно информации о RegionInfo.
Однако на практике такие места, как Великобритания, имеют исключения. Например:
Многое зависит от поколения, в котором вы находитесь и ваше отношение к изменениям.
Итак - на практике - обеспечьте и то, и другое, сделайте предположение о разумном значении по умолчанию, но если это важно , всегда позволяйте пользователю отменять предпочтение и убедитесь, что эти изменения запоминаются.