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

Windows Phone 8의 지역화된 앱을 빌드하는 방법

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

이 항목에서는 언어별 리소스 파일을 사용하여 코드에서 지역화 가능한 리소스를 분리하는 방법을 설명합니다. Visual Studio에서는 이러한 리소스 파일을 사용하여 앱이 여러 언어를 지원할 수 있는 어셈블리를 만듭니다. 이 프로세스에 대한 자세한 내용은 리소스 패키징 및 배포를 참조하세요.

다음 코드 예제가 모두 포함된 전체 작업 코드 샘플을 보려면 전역화 샘플을 다운로드하세요.

팁팁:

Visual Studio Professional 2012 및 Visual Studio Express 2012 for Windows Phone 에 통합되어 있는 다국어 앱 도구 키트는 번역 지원 및 번역 파일 관리 도구와, Windows Phone 앱 및 Windows 스토어 앱을 만들 수 있는 지역화 도구를 제공합니다. 이 도구 키트를 사용하여 빠른 번역 제안을 제공하는 Microsoft Translator에 연결할 수 있습니다. 자세한 내용은 다국어 앱 도구 키트를 사용하는 방법을 참조하세요.

앱을 지역화할 수 있도록 하는 방법에 대한 추가 정보는 Windows Phone 8의 지역화 모범 사례를 참조하세요.

이 항목에는 다음 단원이 포함되어 있습니다.

 

Windows Phone 8의 지역화 모범 사례에서 설명한 대로 지역화 가능한 리소스에서 코드를 분리해야 합니다. 앱의 UI 텍스트 문자열을 지역화하는 일반적인 방법은 각 문자열을 리소스 파일의 문자열 테이블 행에 복사하는 것입니다. 그런 다음 각 원본 문자열을 바인딩 문(XAML)이나 이 테이블의 해당 리소스를 가리키는 리소스 참조(코드 숨김)로 바꿉니다.

지역화할 UI 문자열을 캡처하는 데 사용되는 초기 리소스 파일은 AppResources.resx라고 하며 프로젝트를 만들 때 기본적으로 앱의 리소스 폴더에 만들어집니다. AppResources.resx는 중립 언어 리소스라고도 합니다. 이 리소스는 템플릿의 UI 텍스트 XAML 요소에 대한 자리 표시자 문자열 리소스 및 값으로 초기화되며 해당되는 경우 앱 바를 지역화하는 샘플 코드로 초기화됩니다.

앱에서 지원하는 각 문화권에는 고유한 리소스 파일이 있으며, AppResources.resx의 리소스와 일치하지만 값을 지역화할 문자열 리소스가 포함되어 있습니다. 이러한 파일은 지원되는 문화권을 추가할 때 만들어지며 AppResources.en-US.resx와 같이 해당 문화권의 로캘 코드를 사용하여 이름을 지정합니다.

지역화된 앱을 시작하면 사용자의 휴대폰 표시 언어와 가장 일치하는 문화권으로 리소스를 암시적으로 로드하고 표시합니다. 가장 일치하는 항목이 없으면 앱에서 중립 언어 리소스를 사용합니다. 앱 코드에서는 요소별로 또는 전역으로 암시적 문화권 선택을 명시적으로 재정의할 수 있습니다.

하드 코드된 문자열을 리소스 파일의 문자열로 바꾸기

  1. Windows Phone 응용프로그램 프로젝트를 만듭니다.

  2. MainPage.xaml이라는 파일을 열어 봅니다.

  3. TitlePanel이라는 StackPanel 요소를 찾습니다.

  4. 첫 번째 TextBlockText 특성에서 하드 코드된 "MY APPLICATION" 값을 "ApplicationTitle" 리소스에 대한 다음 바인딩 절로 바꿉니다.

    "{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" 
    

    "ApplicationTitle" 리소스는 기본적으로 AppResources.resx 파일에 있습니다.

  5. AppResources.resx 파일에서 "ApplicationTitle" 값을 앱의 이름으로 바꿉니다.

    이제 TextBlock 요소는 다음과 같습니다.

    <TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" 
        Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
    
  6. AppResources.resx 파일에서 앱에 적용되는 값을 사용하여 "PageTitle"이라는 새 문자열 리소스를 만듭니다.

  7. MainPage.xaml에서 두 번째 TextBlockText 특성에서 하드 코드된 "page name" 값을 "PageTitle" 리소스에 대한 바인딩 절로 바꿉니다.

    이제 TextBlock 요소는 다음과 같습니다.

    <TextBlock Text="{Binding Path=LocalizedResources.PageTitle, Source={StaticResource LocalizedStrings}}" 
        Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
    
  8. 앱의 ApplicationBar를 지역화하려면 MainPage.xaml.cs 파일에서 BuildLocalizedApplicationBar 메서드 호출 및 함수의 주석 처리를 제거합니다.

  9. AppResources.resx 파일에서 AppBarMenuItemTextAppBarButtonText 리소스의 값을 바꿉니다.

  10. 앱에서 사용하려는 추가 버튼, 메뉴 항목 및 관련된 리소스입니다.

언어를 더 추가하려면

  1. 중립 언어를 사용하여 앱을 만들고 테스트한 후 지원되는 언어를 추가할 수 있습니다.

    프로젝트의 속성 페이지에 있는 지원되는 문화권 상자에서 앱이 지원하도록 할 언어를 선택합니다.

  2. 프로젝트를 저장합니다.

    참고참고:

    Visual Studio에서 중립 리소스 파일(AppResources.resx)의 복사본인 각 지원되는 언어에 대해 새 리소스 파일을 만들고 새 리소스 파일의 문화권을 반영하는 로캘 코드를 포함하도록 이름을 바꾸었습니다.

  3. 각 지원되는 언어 리소스 파일의 중립 언어 값을 변환된 값으로 바꿉니다.

    주의주의:

    앱의 지역화된 언어에 대한 올바른 설명이 Windows Phone 스토어 에서 사용자에게 표시되도록 하려면 다음 방법을 사용합니다. 프로젝트 속성의 목록에서 선택을 제거하여 이전에 추가한 지원되는 문화권을 제거해야 하는 경우 WMAppManifest.xml에서 연관된 지원되는 언어를 제거해야 합니다(매니페스트 디자이너 > 지원되는 언어 > 패키징의 목록 사용). 또한 WMAppManifest.xml에서 지원되는 언어 목록이나 기본 언어를 수정하기 전에 그 영향에 대해 이해하고 있어야 합니다.

페이지의 XAML 또는 페이지 코드 숨김 부분의 C#을 사용하여 앱 페이지에 앱 바를 추가할 수 있습니다. 그러나 XAML 앱 바는 ApplicationBarIconButton의 텍스트 레이블 또는 ApplicationBarMenuItem의 텍스트에 대한 동적 데이터 바인딩을 지원하지 않습니다. 이러한 이유로 다음 코드와 MainPage 생성자 및 자리 표시자 리소스의 코드 호출은 관련된 각 새 프로젝트 템플릿에서 주석 처리된 샘플로 재현됩니다. 앱 바 만들기에 대한 자세한 내용은 Windows Phone의 앱 바를 참조하세요.

주의주의:

다음 코드 예제는 관련된 각 템플릿에 포함되지만 전역화 샘플에서 재현됩니다.


// Build a localized ApplicationBar
private void BuildLocalizedApplicationBar()
{
    // Set the page's ApplicationBar to a new instance of ApplicationBar.
    ApplicationBar = new ApplicationBar();

    // Create a new button and set the text value to the localized string from AppResources.
    ApplicationBarIconButton appBarButton = 
        new ApplicationBarIconButton(new   
        Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
        appBarButton.Text = AppResources.AppBarButtonText;
    ApplicationBar.Buttons.Add(appBarButton);

    // Create a new menu item with the localized string from AppResources.
    ApplicationBarMenuItem appBarMenuItem = 
        new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
    ApplicationBar.MenuItems.Add(appBarMenuItem);
}

지역화된 문자열을 테스트하려면 Windows Phone의 지역화된 앱을 테스트하는 방법의 단계를 수행하세요.

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft