Dela via


Att arbeta med lokalanpassningar

Det här avsnittet innehåller några instruktioner för att hantera anpassade språk- och regioninställningar i dina applikationer. Det är bäst att förbereda all källkod med dessa överväganden i åtanke, eftersom programmet inte styr om anpassade nationella inställningar är installerade på operativsystemet.

Hantera LOCALE_STIME konstant korrekt

Om du har ett äldre program som använder GetLocaleInfo för att hämta den föråldrade tidsavgränsaren som anges av LOCALE_STIMEkan programmet inte parsa tidsformatet. Kom ihåg att tecknet som skiljer timmar från minuter skiljer sig från tecknet som skiljer minuter från sekunder.

Not

När du programmerar för anpassade nationella inställningar bör du komma ihåg att de är ovanliga. Praktiskt taget alla fält som är tillgängliga för NLS måste hantera ovanligt beteende. Tidsformatet 12H34'12' är till exempel legitimt och allmänt begripligt. Ändå gör många program antaganden om tidsavgränsare som kan bryta buffertlängder eller visningsfält.

 

Skilj mellan kompletterande lokalinställningar

Alla kompletterande nationella inställningar använder LOCALE_CUSTOM_UNSPECIFIED konstanten för nationella identifieraren. I regel kan GetLocaleInfo inte skilja mellan kompletterande språk, men GetLocaleInfoEx kan eftersom det använder språknamn i stället för nationella identifierare. Programmet kan endast hämta information om ett visst tilläggsspråk när det nationella språket är det aktuella användarspråket. Sedan kan programmet anropa GetLocaleInfo- och skicka konstanten LOCALE_USER_DEFAULT som språkidentifierare.

Hantera ersättningslokaler

Kom ihåg att ett ersättningsspråk som stöds av ditt program inte kan ändra språkidentifieraren för det ersatta språket för att bevara tillförlitligheten i Windows. Inte heller kan en ersättningslokal ändra sorteringsegenskaperna för Windows.

Även om en ersättningsmiljö kan ändra standardkalendern måste den behålla den ursprungliga standardkalendern någonstans i listan över tillgängliga kalendrar. Språkvarianten thai (Thailand) använder till exempel den thailändska buddistiska kalendern som standard. En administratör kan skapa ett ersättningsspråk som använder den gregorianska lokaliserade kalendern. Listan över tillgängliga kalendrar fortsätter dock att innehålla en post för den thailändska buddistiska kalendern.

För ersättningsspråk bör programmet i allmänhet konsultera språkspecifik information i stället för att försöka med en genväg baserat på kunskap om ett visst språk. När till exempel GetThreadLocale hämtar det aktuella språket som engelska (USA) kan det faktiskt vara ett ersättningsspråk som bör tillåtas börja gälla.

Anpassa kalendrar

Dina program kan anpassa dag- och månadsnamn för gregorianska kalendrar, men inte för icke-gregorianska kalendrar. På samma sätt stöder NLS inte skapandet av användardefinierade anpassade kalendrar. För mer information, se Datum och Kalender.

Hantera sorteringssekvenser

En kompletterande lokalitet kan använda valfri Microsoft-definierad sorteringssekvens. Ett ersättningsspråk måste använda samma sorteringssekvens som det språk som den ersätter. NLS stöder inte skapandet av användardefinierade sorteringssekvenser. Mer information finns i Hantering av sortering i dina program.

Lokalisera anpassad språkinformation

NLS tillhandahåller ingen mekanism för att lokalisera anpassad språkinformation. Därför hämtar konstanten LOCALE_SLANGUAGE eller LOCALE_SLOCALIZEDLANGUAGENAME som används som språkidentifierare för ett anpassat språk alltid värden som är associerade med LOCALE_SNATIVELANGNAME eller LOCALE_SNATIVELANGUAGENAME.

Använda nationellt språkstöd

anpassade nationella inställningar

datum och kalender

Hantering av sortering i dina program