내보내기(0) 인쇄
모두 확장

방법: Windows Phone용 지역화된 응용프로그램 빌드

2012-02-09

Windows Phone의 지역화 모범 사례 항목의 모범 사례를 따르면 응용프로그램을 지역화할 수 있습니다.

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

중요중요:

동아시아 언어로 응용프로그램을 지역화할 계획인 경우 Silverlight용 중국어, 일본어 및 한국어 텍스트 표시에 나열된 단계도 따라야 합니다.

아래 코드 예제가 포함된 전체 작업 코드 샘플을 보려면 Windows Phone용 코드 샘플 항목의 전역화 샘플을 다운로드합니다.

Windows Phone의 지역화 모범 사례 항목에 설명된 대로 지역화 가능 리소스를 모두 리소스 파일로 이동해야 합니다.

  1. 응용프로그램의 기본 언어에 대한 리소스 파일을 추가합니다.

    1. Visual Studio에서 프로젝트를 엽니다.

    2. 리소스 파일을 추가합니다. 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 추가, 새 항목을 차례로 클릭합니다.

    3. 새 항목 추가 대화 상자에서 리소스 파일을 선택하고 원하는 경우 파일의 이름을 바꿉니다. 예를 들어 파일의 이름을 AppResources.resx로 바꿀 수 있습니다. 이 파일에는 응용프로그램의 기본 언어에 대한 리소스가 포함됩니다.

    4. 응용프로그램에서 문자열을 식별하고 리소스 파일에 추가합니다. 각 문자열에 대해 이름, 값 및 선택적 설명을 입력할 수 있습니다.

      • 이 이름은 고유해야 합니다. 가능한 한 자세한 이름을 설정합니다.

      • 값은 응용프로그램에서 사용자에게 표시될 문자열입니다.

      • 설명은 선택 사항이지만 특히 많은 문자열이 포함된 큰 리소스 파일에서 번역자에게 유용합니다.

  2. 응용프로그램에서 지원할 각 추가 언어에 대한 리소스 파일을 추가합니다. Windows Phone에 대한 문화권 및 언어 지원에 설명된 대로 각 리소스 파일에는 올바른 문화권/언어 이름이 포함되어야 합니다.

    예를 들면 다음과 같습니다.

    • 스페인어(스페인) 문화권의 경우 AppResources.es-ES.resx를 사용합니다.

    • 독일어(독일) 문화권의 경우 AppResources.de-DE.resx를 사용합니다.

    참고

    추가 언어에 대해서만 이 단계를 완료하면 됩니다. 예를 들어 기본 언어가 영어(미국)이고 해당 언어의 문자열을 기본 언어 리소스 파일에 추가한 경우에는 "en-US"에 대한 추가 리소스 파일을 만들면 안 됩니다.

  3. 응용프로그램에서 지원할 기본 문화권을 정의합니다.

    중요중요:

    기본적으로 중립 언어는 Visual Studio의 기본 문화권으로 설정됩니다. 응용프로그램이 Visual Studio의 기본 문화권과는 다른 문화권을 대상으로 하는 경우 다음 단계를 완료해야 합니다. 다른 문화권을 대상으로 하지 않는 경우 다음 단계를 통해 올바른 중립 언어가 설정되었는지 확인합니다.

    1. 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다.

    2. 응용프로그램 탭에서 어셈블리 정보 버튼을 클릭합니다.

    3. 중립 언어 목록에서 기본 문화권을 선택합니다. 그러면 기본 리소스 파일의 문자열 언어가 식별됩니다. 예를 들어 기본 리소스 파일의 이름이 AppResources.resx이고 해당 파일의 문자열이 영어(미국) 언어 문자열인 경우 프로젝트의 중립 언어영어(미국)를 선택합니다.

  4. 프로젝트를 닫고 텍스트 편집기에서 프로젝트 파일(<프로젝트 이름>.csproj)을 엽니다. <SupportedCultures> 태그를 찾아서 응용프로그램이 지원해야 하는 각 추가 문화권(언어)의 이름을 추가합니다. 프로젝트에 추가한 각 .resx 파일에 대한 항목이 있어야 합니다.

    세미콜론을 사용하여 언어 이름을 구분하고 추가 문화권 이름만 추가합니다. 예를 들어 응용프로그램에서 기본 문화권으로 영어(미국)를 사용하지만 독일어(독일) 및 스페인어(스페인)도 지원하는 경우 이 태그를 다음과 같이 업데이트합니다.

    <SupportedCultures>de-DE;es-ES;</SupportedCultures>

프로젝트를 다시 열어 하드 코딩된 문자열을 리소스 파일의 문자열로 바꿉니다.

  1. 솔루션 탐색기에서 리소스 파일을 열고 창의 맨 위에 있는 AccessModifier 목록 상자에서 공용을 선택합니다. 프로젝트의 각 리소스 파일에 대해 이 단계를 반복합니다.

  2. 리소스를 가리키는 속성이 있는 클래스를 정의합니다. 다음 예제의 LocalizedStrings 클래스에는sdkGlobalizationCS 네임스페이스의 AppResources 리소스 파일을 가리키는 속성이 포함됩니다.

    public class LocalizedStrings
    {
        public LocalizedStrings()
        {
        }
    
        private static sdkGlobalizationCS.AppResources localizedResources = new sdkGlobalizationCS.AppResources();
    
        public sdkGlobalizationCS.AppResources LocalizedResources { get { return localizedResources; } }
    }
    
    

    프로젝트에 추가 리소스 파일이 있는 경우 각각 특정 리소스를 반환하는 여러 속성이 포함된 단일 LocalizedStrings 클래스가 있을 수 있습니다.

  3. App.xaml 파일을 열고 <Application.Resources> 섹션에 다음 XAML 코드를 추가합니다.

    <Application.Resources>
        <local:LocalizedStrings xmlns:local="clr-namespace:sdkGlobalizationCS" x:Key="LocalizedStrings" />
    </Application.Resources>
    
    

    여기서 LocalizedStrings는 리소스 파일을 반환하는 속성이 있는 클래스의 이름이고, sdkGlobalizationCSLocalizedStrings 클래스가 포함된 네임스페이스입니다. x:Key 특성은 코드에서 LocalizedStrings 인스턴스를 참조하는 이름을 정의합니다.

  4. 각 하드 코딩된 문자열을 다음 XAML 코드로 바꿉니다.

    "{Binding Path=resourceFile.resourceName, Source={StaticResource LocalizedStrings}}"

    여기서 resourceName은 지역화할 수 있는 리소스의 이름이고, resourceFileresourceName이 포함된 포인터의 이름이며, LocalizedStrings는 리소스를 반환하는 클래스의 인스턴스에 할당된 이름입니다.

    전역화 샘플의 다음 XAML 코드 예제에서는 ListBoxItem 컨트롤을 LocalizedStrings 클래스 인스턴스에서 반환된 LangRegionNameFrFR 문자열과 바인딩합니다.

    <ListBoxItem Content="{Binding Path=LocalizedResources.LangRegionNameFrFR, Source={StaticResource LocalizedStrings}}" />
    
  5. 지역화할 수 있는 콘텐츠가 포함된 응용프로그램의 각 XAML 파일에서 지역화할 수 있게 만들 각 문자열에 대해 이전 단계를 반복합니다.

  6. 응용프로그램 빌드 - 이제 다국어 응용프로그램으로 빌드되며 휴대폰의 언어 설정에 따라 사용자 인터페이스를 표시합니다.

페이지의 코드 숨김에서 C#을 사용하거나 페이지 XAML에서 응용프로그램의 페이지에 응용프로그램 모음을 추가할 수 있습니다. 하지만 응용프로그램 모음은 Silverlight 컨트롤이 아니기 때문에 ApplicationBarIconButton의 텍스트 레이블이나 ApplicationBarMenuItem의 텍스트에 대해 동적 데이터 바인딩을 지원하지 않습니다. 따라서 이러한 문자열을 지역화하려는 경우 런타임에 응용프로그램 모음을 만들거나 업데이트해야 합니다. 다음 코드 예제에서는 지역화된 리소스로 문자열 값을 제공하여 응용프로그램 모음을 빌드하는 도우미 함수를 보여 줍니다. 이 예제에서는 "ButtonText" 및 "MenuItemText"라는 문자열 테이블 항목을 사용하여 지역화된 리소스 DLL을 만들었다고 가정합니다. 응용프로그램 모음을 만드는 방법에 대한 자세한 내용은 Windows Phone용 응용프로그램 모음 개요를 참조하십시오.

주의주의:

아래 코드는 전역화 샘플에 포함되지 않습니다.

// Helper function to build a localized ApplicationBar
private void BuildApplicationBar()
{
    // 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("ApplicationIcon.png",UriKind.Relative));
    appBarButton.Text = AppResources.ButtonText;
    ApplicationBar.Buttons.Add(appBarButton);

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

}

지역화된 문자열을 테스트하려면 방법: Windows Phone용 지역화된 응용프로그램 테스트의 단계를 수행합니다.

표시:
© 2014 Microsoft