다음을 통해 공유


사용자 지정 로캘 작업

이 항목에서는 애플리케이션에서 사용자 지정 로캘 을 처리하기 위한 몇 가지 지침을 제공합니다. 애플리케이션이 운영 체제에 사용자 지정 로캘이 설치되어 있는지 여부를 제어하지 않으므로 이러한 고려 사항을 염두에 두고 모든 소스 코드를 준비하는 것이 가장 좋습니다.

LOCALE_STIME 상수를 올바르게 처리

GetLocaleInfo를 사용하여 LOCALE_STIME 표시된 오래된 시간 구분 기호를 가져오는 이전 애플리케이션이 있는 경우 애플리케이션이 시간 형식을 구문 분석하지 못할 수 있습니다. 분에서 시간을 구분하는 문자는 분과 초를 구분하는 문자와 구분됩니다.

참고

사용자 지정 로캘을 프로그래밍할 때는 비정상적입니다. NLS에서 사용할 수 있는 거의 모든 필드는 비정상적인 동작에 대처해야 합니다. 예를 들어 시간 형식 12H34'12'''는 합법적이며 일반적으로 이해할 수 있습니다. 그러나 많은 애플리케이션은 버퍼 길이를 중단하거나 필드를 표시할 수 있는 시간 구분 기호를 가정합니다.

 

추가 로캘 구분

모든 추가 로캘은 로캘 식별자에LOCALE_CUSTOM_UNSPECIFIED 상수를 사용합니다. 일반적으로 GetLocaleInfo 는 추가 로캘을 구분할 수 없지만 GetLocaleInfoEx 는 로캘 식별자 대신 로캘 이름을 사용하기 때문에 구분할 수 있습니다. 애플리케이션은 해당 로캘이 현재 선택된 사용자 로캘인 경우에만 특정 추가 로캘에 대한 정보를 검색할 수 있습니다. 그런 다음, 애플리케이션은 GetLocaleInfo를 호출하고 상수 LOCALE_USER_DEFAULT 로캘 식별자로 전달할 수 있습니다.

대체 로캘 처리

Windows의 안정성을 유지하기 위해 애플리케이션에서 지원하는 대체 로캘은 대체된 로캘의 로캘 식별자를 수정할 수 없습니다. 대체 로캘은 Windows의 정렬 속성을 수정할 수 없습니다.

대체 로캘은 기본 달력을 변경할 수 있지만 사용 가능한 일정 목록의 어딘가에 원래 기본값을 유지해야 합니다. 예를 들어 태국(태국) 로캘은 태국 불교 달력을 기본값으로 사용합니다. 관리자는 그레고리오 지역화된 달력을 사용하는 대체 로캘을 만들 수 있습니다. 그러나 사용 가능한 달력 목록에는 태국 불교 달력에 대한 항목이 계속 포함됩니다.

대체 로캘의 경우 애플리케이션은 일반적으로 특정 로캘에 대한 지식에 따라 "바로 가기"를 시도하는 대신 로캘 관련 정보를 참조해야 합니다. 예를 들어 GetThreadLocale이 현재 로캘을 영어(미국)로 검색하는 경우 실제로 적용할 수 있는 대체 로캘일 수 있습니다.

일정 사용자 지정

애플리케이션은 그레고리오력의 일 및 월 이름을 사용자 지정할 수 있지만 그레고리오력이 아닌 달력에는 사용자 지정할 수 없습니다. 마찬가지로 NLS는 사용자 정의 사용자 지정 달력 만들기를 지원하지 않습니다. 자세한 내용은 날짜 및 일정을 참조하세요.

정렬 시퀀스 처리

추가 로캘은 Microsoft 정의 정렬 시퀀스를 사용할 수 있습니다. 대체 로캘은 대체 로캘과 동일한 정렬 시퀀스를 사용해야 합니다. NLS는 사용자 정의 정렬 시퀀스 생성을 지원하지 않습니다. 자세한 내용은 애플리케이션에서 정렬 처리를 참조하세요.

사용자 지정 로캘 정보 지역화

NLS는 사용자 지정 로캘 정보를 지역화하는 메커니즘을 제공하지 않습니다. 따라서 사용자 지정 캘의 로캘 식별자로 사용되는 상수 LOCALE_SLANGUAGE 또는 LOCALE_SLOCALIZEDLANGUAGENAME 항상 LOCALE_SNATIVELANGNAME 또는 LOCALE_SNATIVELANGUAGENAME 연결된 값을 검색합니다.

국가별 언어 지원 사용

사용자 지정 로캘

날짜 및 일정

애플리케이션에서 정렬 처리