내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone 8용 Direct3D 앱에서 사용자 설정 UI 언어를 결정하는 방법

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1만

 

이 항목에서는 순수 네이티브 앱에서 기본 UI 언어를 확인하는 방법에 대해 설명합니다. Windows Phone 사용자는 휴대폰의 표시 언어를 선택할 수 있으며, 사용자가 휴대폰 설정에서 선택하는 언어에 따라 앱에서 지역화된 콘텐츠를 제공하도록 선택할 수 있습니다. 지원되는 언어 목록은 Windows Phone에 대한 문화권 및 언어 지원을 참조하세요.

Windows Phone Direct3D 앱 에서는 지역화된 리소스 파일을 비롯하여 관리되는 앱 에서 사용할 수 있는 지역화 기능 중 많은 기능을 지원하지 않습니다. GetUserPreferredUILanguages 함수를 사용하여 사용자 기본 UI 언어를 쿼리할 수 있습니다. 언어 이름 형식이 프로그래밍 모범 사례로 권장되지만, 이 함수를 실행하면 휴대폰 언어 식별자 형식이나 언어 이름 형식의 현재 UI 언어가 반환됩니다. 앱에서 반환된 값을 사용하여 다양한 언어에 대한 다양한 자산 집합을 로드할 수 있습니다.

다음 코드 예제에서는 GetUserPreferredUILanguages의 사용을 보여 줍니다. 앱에서 이 함수를 두 번 호출합니다. 첫 번째 호출은 반환된 언어 이름이나 ID를 포함해야 하는 버퍼의 크기 값을 반환합니다. 이 함수는 장치의 기본 언어 수도 반환하지만, Windows Phone 에서는 이 값이 항상 1입니다. 첫 번째 호출이 성공하면 올바른 크기의 버퍼를 할당한 후 이 크기를 함수의 두 번째 호출에 전달합니다. 다음에는 반환된 값에 따라 로드할 자산을 결정할 수 있습니다.


	ULONG numLanguages = 0;
    DWORD cchLanguagesBuffer = 0;
    BOOL hr = GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &numLanguages, NULL, &cchLanguagesBuffer);

    if (hr) {
          WCHAR* pwszLanguagesBuffer = new WCHAR[cchLanguagesBuffer];
          hr = GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &numLanguages, pwszLanguagesBuffer, &cchLanguagesBuffer);
          if (hr) {
              if (wcsncmp(pwszLanguagesBuffer, L"en-", 3) == 0) { // any English: en-*
                  MyLoadResources(1);
              } else if (wcscmp(pwszLanguagesBuffer, L"pt-BR") == 0) { // Brazilian dialect of Portuguese
                  MyLoadResources(2);
              }
              delete pwszLanguagesBuffer;
        }
    }


이 예제에서는 MUI_LANGUAGE_NAME 상수를 첫 번째 인수로 사용하여 언어가 이름 형식으로 반환되도록 지정합니다. MUI_LANGUAGE_ID를 사용하여 언어 식별자 형식을 가져옵니다.

표시:
© 2014 Microsoft