Praca z niestandardowymi ustawieniami regionalnymi
Ten temat zawiera instrukcje dotyczące obsługi niestandardowych ustawień regionalnych w aplikacjach. Najlepiej przygotować cały kod źródłowy z uwzględnieniem tych zagadnień, ponieważ aplikacja nie kontroluje, czy niestandardowe ustawienia regionalne są zainstalowane w systemie operacyjnym.
Poprawna obsługa stałej LOCALE_STIME
Jeśli masz starszą aplikację, która używa GetLocaleInfo w celu uzyskania przestarzałego separatora czasu wskazanego przez LOCALE_STIME, aplikacja może nie przeanalizować formatu czasu. Pamiętaj, że znak, który oddziela godziny od minut, różni się od znaku, który oddziela minuty od sekund.
Notatka
Podczas programowania niestandardowych lokalizacji należy pamiętać, że są one nietypowe. Praktycznie każde pole dostępne dla NLS musi poradzić sobie z nietypowym zachowaniem. Na przykład format czasu 12H34"12" jest uzasadniony i ogólnie zrozumiały. Jednak wiele aplikacji przyjmuje założenia dotyczące separatorów czasu, które mogą przerywać długość buforu lub wyświetlać pola.
Rozróżnianie między dodatkowymi lokalizacjami
Wszystkie ustawienia regionalne uzupełniające używają stałej LOCALE_CUSTOM_UNSPECIFIED dla identyfikatora ustawień regionalnych . Z reguły GetLocaleInfo nie może odróżnić się od ustawień regionalnych uzupełniających, ale GetLocaleInfoEx może, ponieważ używa nazw ustawień regionalnych zamiast identyfikatorów ustawień regionalnych. Aplikacja może pobierać informacje o określonym dodatkowym ustawieniu regionalnym tylko wtedy, gdy to ustawienie jest aktualnie wybranym ustawieniem regionalnym użytkownika. Następnie aplikacja może wywołać GetLocaleInfo i przekazać stałą LOCALE_USER_DEFAULT jako identyfikator ustawień regionalnych.
Zarządzanie zastępczymi ustawieniami regionalnymi
Aby zachować niezawodność systemu Windows, pamiętaj, że zastępcze ustawienia regionalne obsługiwane przez aplikację nie mogą modyfikować identyfikatora ustawień regionalnych zastąpionych ustawień regionalnych. Ani ustawienia regionalne zastępcze nie mogą modyfikować właściwości sortowania systemu Windows.
Mimo że zastępcze ustawienia regionalne mogą zmienić kalendarz domyślny, musi zachować oryginalną wartość domyślną gdzieś na liście dostępnych kalendarzy. Na przykład tajski lokalny system używa kalendarza buddyjskiego jako domyślnego. Administrator może utworzyć zastępcze ustawienia regionalne korzystające z zlokalizowanego kalendarza gregoriańskiego. Jednak lista dostępnych kalendarzy nadal zawiera wpis w tajskim kalendarzu buddyjskim.
W przypadku ustawień regionalnych zastępczych aplikacja powinna zazwyczaj skonsultować się z informacjami specyficznymi dla ustawień regionalnych zamiast próbować "skrótu" na podstawie wiedzy o określonych ustawieniach regionalnych. Jeśli na przykład GetThreadLocale pobiera bieżące ustawienie regionalne jako angielski (Stany Zjednoczone), może to być zastępcze ustawienie regionalne, które należy zastosować.
Dostosowywanie kalendarzy
Aplikacje mogą dostosowywać nazwy dni i miesięcy dla kalendarzy gregoriańskich, ale nie dla kalendarzy innych niż gregoriański. Podobnie nlS nie obsługuje tworzenia kalendarzy niestandardowych zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz Date and Calendar.
Zarządzanie sekwencjami sortowania
Dodatkowe ustawienia regionalne mogą używać dowolnej sekwencji sortowania zdefiniowanej przez firmę Microsoft. Zastępcze ustawienia regionalne muszą używać tej samej sekwencji sortowania co zastępowane ustawienia regionalne. NlS nie obsługuje tworzenia sekwencji sortowania zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz Obsługa sortowania w aplikacjach.
Lokalizowanie niestandardowych danych lokalnych
NlS nie zapewnia mechanizmu lokalizowania niestandardowych informacji regionalnych. W związku z tym stała LOCALE_SLANGUAGE lub LOCALE_SLOCALIZEDLANGUAGENAME używana jako identyfikator ustawień regionalnych niestandardowych zawsze pobiera wartości skojarzone z LOCALE_SNATIVELANGNAME lub LOCALE_SNATIVELANGUAGENAME.
Tematy pokrewne