Czy ktoś mógłby mi podać więcej informacji na temat różnicy między Culture
i UICulture
w ramach .NET? Co robią i kiedy używać czego?Jaka jest różnica między kulturą a UICulture?
Odpowiedz
Culture
wpływa na sposób wyświetlania danych zależnych od kultury (daty, waluty, liczby itd.). Oto kilka przykładów:
var date = new DateTime(2000, 1, 2);
var number = 12345.6789;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68
Kultura wpływa także parsowanie danych wprowadzonych przez użytkownika w taki sam sposób:
const string numberString = "12.345,68";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false
Strzeż przypadkach, gdy parsowanie wszystko działa ale wynik nie jest to, czego można się spodziewać że jest to.
const string numberString = "12.345";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point
UICulture
wpływa który plik zasobów (zasoby. lang .resx) zostanie załadowany przez aplikację.
Aby załadować zasoby niemieckie (prawdopodobnie tekst zlokalizowany), ustawisz UICulture
na niemiecką kulturę i wyświetlisz formatowanie niemieckie (bez wpływu na załadowane zasoby), aby ustawić Culture
.
Własność UICulture może się zmienić dla każdej przeglądarki internetowej, podczas gdy Kultura pozostaje stała.
Wartość Kultury można ustawić tylko dla określonych kultur, na przykład en-US lub en-GB. Zapobiega to wymogowi identyfikacji prawidłowego symbolu waluty używanego w en, gdzie en-US i en-GB mają różne symbole walut. Użytkownicy mogą ustawić kulturę i kulturę interfejsu użytkownika w swoich przeglądarkach.
Tylko niewielka sprawa do rozważenia oprócz niesamowitego wyjaśnienia @ Vache: Możesz ustawić zarówno UICulture, jak i Culture na (poziomie strony i poziomie aplikacji).
Aby ustawić je na poziomie aplikacji, wystarczy dodać sesji Globalizacja w web.config
przykład <globalization uiCulture="es" culture="es-MX" />
i ustawić je na poziomie strony, co jest dobre, aby dodać na konkretnej stronie (indywidualne), ustaw Kultura i UIculture atrybutów w dyrektywie @ strony
przykład <%@ Page UICulture="es" Culture="es-MX" %>
Culture and UICulture
Wartości są pary ciągów dwóch liter, pierwszy jest do określenia języka, a drugi dla określenia regionu. Przykład:
en-GB
tutaj en
reprezentuje English
i GB
reprezentuje Great Briton
en-US
tutaj en
reprezentuje English
i US
reprezentuje United States
Zastosowanie Culture
dla funkcji zależnych kultura jak data, godzina. i UICulture
służy do prawidłowego ładowania pliku zasobów.
- 1. Jaka jest różnica między cat_id a term_id?
- 2. Jaka jest różnica między IEnumerable a tablicami?
- 3. Jaka jest różnica między == a === w Verilog?
- 4. Jaka jest różnica między UseCase a Workflow?
- 5. Jaka jest różnica między pakietem a intencją?
- 6. Jaka jest różnica między węzłem a wierzchołkiem?
- 7. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 8. Jaka jest różnica między alertem a window.alert?
- 9. Jaka jest różnica między @android a android:
- 10. Jaka jest różnica między krotką a kompresją?
- 11. Jaka jest różnica między proxy a reify?
- 12. Jaka jest różnica między @Inject a @PersistenceContext?
- 13. Jaka jest różnica między sqlite3 a pdo_sqlite
- 14. Jaka jest różnica między Const a Constant?
- 15. Jaka jest różnica między Socket.IO a Firebase?
- 16. Jaka jest różnica między macierzą a tablix?
- 17. Jaka jest różnica między KERN_INVALID_ADDRESS a KERN_PROTECTION_FAILURE?
- 18. Jaka jest różnica między Float.POSITIVE_INFINITY a Float.MAX_VALUE?
- 19. Jaka jest różnica między SGML a XML?
- 20. Jaka jest różnica między Cake a Leiningen?
- 21. Jaka jest różnica między JavaBean a POJO?
- 22. Jaka jest różnica między kopiowaniem a klonowaniem?
- 23. Jaka jest różnica między HAVING a WHERE?
- 24. Jaka jest różnica między ItemTemplate a ItemPanelTemplate?
- 25. Jaka jest różnica między słownikiem a tablicą?
- 26. Jaka jest różnica między cancelBubble a stopPropagation?
- 27. Jaka jest różnica między NSString a NSMutableString?
- 28. Jaka jest różnica między StudlyCaps a CamelCase?
- 29. Jaka jest różnica między IPV6_ADD_MEMBERSHIP a IPV6_JOIN_GROUP?
- 30. Jaka jest różnica między spark.sql.shuffle.partitions a spark.default.parallelism?
Co oznacza, że możesz mieć angielskie etykiety i interfejs użytkownika (angielski UICulture) oraz norweską walutę, datę, godzinę i formatowanie liczb (norweski Kultura). W terminach Windows pomyśl o tym, że masz zainstalowany pakiet językowy dla menu i okna dialogowe (UICulture), ale działające z norweskimi ustawieniami regionalnymi (Culture.) –
Aby podkreślić konsekwencje tego: Nawet jeśli nie obsługujesz języka użytkownika, upewnij się, że wspierasz jego kulturę, do formatowania! Widziałem błędy, w których aplikacja cofa się do "en-US", zarówno jeśli chodzi o kulturę, jak i język, gdy trzeba tylko zmienić język. – ToolmakerSteve
Jaki jest sens używania całego obiektu 'CultureInfo' tylko do określenia pliku zasobu, w którym wystarczy napis' string'? (Np. Własność 'Language' w' FrameworkElement') – Wouter