Lokalizacyjne dziwactwa – zaokrąglenia

Kontynuując temat „nieświadomej” lokalizacji aplikacji (porzedni wpis), postanowiłem bliżej przyjrzeć się zaokrągleniom liczb zmiennoprzecinkowych. Okazuje się, że i tu może nas spotkać niespodzianka.

W jaki sposób zaokrągla się liczby w C#? Wszystko zależy od potrzeb. Poniżej wybrane sposoby oraz ich rezultaty:

Math.Round(5.1) // 5
Math.Round(5.7) // 6
Math.Round(5.5) // 6
Math.Round(4.5) // 4
Math.Round(4.51) // 5
Math.Floor(4.9) // 4
Math.Ceiling(4.9) // 5
(int)4.9 // 4

Math.Round(4.45, 1) // 4.4
Math.Round(4.55, 1) // 4.6

Czytaj dalej

Share

Dlaczego mój program działa tylko w Polsce?! Czyli z lokalizacją na dobre i na złe

Może nie tylko w Polsce, ale na pewno nie w Stanach Zjednoczonych czy Wielkiej Brytanii. Kiedy decydujemy się na wystawienie naszej aplikacji na rynek międzynarodowy podejmujemy podstawową decyzję: czy nasza aplikacja będzie lokalizowana, czy „sztywno” anglojęzyczna. W drugim przypadku jesteśmy zwolnieni z tłumaczenia tekstów interfejsu oraz wyświetlania danych (takich jak data, czas, waluta) w formacie charakterystycznym dla danego regionu. Niestety nie możemy całkowicie zignorować kwestii lokalizowania, gdyż poskutkuje to niemałym zaskoczeniem. Na co więc należy zwrócić uwagę? Czytaj dalej

Share

Przeszukiwanie dysku – zbieranie informacji na bieżąco

W tym artykule przedstawię w jaki sposób przeszukiwać dysk twardy tak, aby użytkownik był informowany o aktualnie sprawdzanym katalogu oraz posiadał listę już odnalezionych plików. Oczywiście warunkiem koniecznym  jest aby interfejs użytkownika był cały czas aktywny, natomiast sam użytkownik mógł w dowolnym momencie przerwać przeszukiwanie. Moduł będzie zintegrowany z interfejsem w WPF.

Czytaj dalej

Share

Identyfikacja systemu operacyjnego użytkownika

Czasami zdarza się, że usługi jakie oferuje nasz program powinny być uzależnione od wersji systemu operacyjnego na jakim pracuje użytkownik końcowy. Wydawanie osobnych instalatorów nie jest wygodnym rozwiązaniem ani dla użytkownika ani tym bardziej dla programisty. Choć biblioteki .NET, a w szczególności klasa System.OperatingSystem oferuje wiele ciekawych informacji, są one niewygodne w codziennej pracy. Wymagana jest szczegółowa wiedza na temat Major oraz Minor Version systemu, który nas interesuje.

Natknąłem się na bardzo ciekawy artykuł dotyczący identyfikacji systemu. Można w nim znaleźć wiele tabelek dotyczących liczb przypisanych do konkretnych systemów Windows oraz ich wersji (Home / Home Premium, itd…). Przedstawiono sposób w jaki da się wyciągnąć bardzo szczegółowe informacje. Co jeżeli wystarczy nam sama nazwa systemu operacyjnego? Rozwiązanie poniżej

Czytaj dalej

Share

Lokalizacja UI z wykorzystaniem plików XML i mechanizmu refleksji – Część 3

W poprzednim artykule zajęliśmy się częścią odpowiedzialną za wczytywanie i przechowywanie słownika w pamięci. Teraz opiszę w jaki sposób będziemy tłumaczyć UI i oznaczać, które elementy mają temu podlegać. Przedstawię również prostą aplikację napisaną w Windows Forms podsumowującą wszystko o czym mówiliśmy. Czytaj dalej

Share