다음을 통해 공유


SharePoint 솔루션 지역화

전 세계에서 사용할 수 있도록 애플리케이션을 준비하는 프로세스를 지역화라고 합니다. 지역화는 리소스를 특정 문화권으로 번역합니다. 자세한 내용은 애플리케이션 전역화 및 지역화를 참조하세요. 이 항목에서는 SharePoint 솔루션을 지역화하는 방법을 개괄적으로 설명합니다.

솔루션을 지역화하려면 하드 코드된 문자열을 코드에서 제거하고 리소스 파일로 추상화합니다. 리소스 파일은 .resx 확장명을 사용하는 XML 기반 파일입니다. 리소스 파일에는 솔루션에서 사용되는 문자열의 번역된 버전이 포함되어 있습니다. 자세한 내용은 애플리케이션의 리소스를 참조하세요.

참고 항목

SharePoint 솔루션 리소스 파일에는 문자열 리소스만 추가합니다. 리소스 편집기를 사용하면 문자열이 아닌 리소스를 추가할 수 있지만, 문자열이 아닌 리소스는 SharePoint에 배포되지 않습니다.

리소스 파일

리소스 파일에는 기본, 언어 중립적, 언어별의 세 가지 종류가 있습니다.

리소스 파일 형식 설명
기본값 대체 리소스라고도 하는 기본 리소스 파일에는 영어와 같은 기본 문화권으로 지역화된 문자열이 포함되어 있습니다. 지정한 언어로 지역화된 리소스 파일을 찾을 수 없는 경우에 사용됩니다. 기본 리소스에는 별도의 파일이 없으며, 주 애플리케이션 어셈블리에 저장됩니다.
언어 중립 특정 문화권이 아닌 언어로 지역화된 문자열을 포함하는 리소스 파일입니다. 예를 들어 프랑스어의 경우 “fr”입니다.
언어별 언어와 문화권으로 지역화된 문자열을 포함하는 리소스 파일입니다. 예를 들어 프랑스어(캐나다)의 경우 “fr-CA”입니다.

자세한 내용은 지역화를 위한 리소스의 계층적 구성을 참조하세요.

Visual Studio에서 개발하는 SharePoint 프로젝트의 기본 리소스 파일을 지정하려면 리소스 파일을 추가할 때 리소스 추가 대화 상자의 문화권 목록에서 고정 언어(고정 국가)를 선택합니다.

리소스 파일 추가

리소스 파일을 추가하는 명령은 솔루션 탐색기에 있는 솔루션 노드 및 기능 노드의 바로 가기 메뉴에 있습니다.

SharePoint 솔루션에 전역 리소스 파일을 추가하려면

  1. Visual Studio에서 SharePoint 솔루션을 엽니다.

  2. 솔루션 탐색기에서 SharePoint 프로젝트 노드를 선택한 다음, 메뉴 모음에서 프로젝트>새 항목 추가를 선택합니다.

  3. 새 항목 추가 대화 상자에서 전역 리소스 파일 템플릿을 선택한 다음, 추가 단추를 선택합니다.

    참고 항목

    전역 리소스 파일 프로젝트 항목 템플릿은 SharePoint 프로젝트 항목을 선택한 경우에만 나타납니다.

  4. 리소스 추가 대화 상자에서 리소스 파일의 문화권(예: 영어(미국))을 선택합니다.

    이 단계에서는 Resource1.en-US.resx와 같은 {Resource_x_}.{culture}.resx 형식의 글로벌 리소스 파일을 솔루션에 추가합니다.

  5. 리소스 편집기가 Visual Studio에서 열리면 리소스 파일에 리소스를 추가합니다.

SharePoint 기능에 기능 리소스 파일을 추가하려면

  1. SharePoint 솔루션이 Visual Studio에서 아직 열려 있지 않은 경우 솔루션을 엽니다.

  2. 솔루션 탐색기기능 노드 아래에서 기능 이름의 바로 가기 메뉴를 연 다음, 기능 리소스 추가를 선택합니다.

    이 단계에서는 리소스 파일을 Feature1.en-US.resx 같은 {ResourceFileName}.{culture}{.resx} 형식으로 기능에 추가합니다.

  3. 리소스 편집기가 Visual Studio에서 열리면 리소스 파일에 리소스를 추가합니다.

Visual Studio SharePoint 솔루션 지역화

솔루션을 지역화하는 경우 솔루션에서 사용자에게 표시하는 모든 텍스트 정보를 고려해야 합니다. 정보 메시지, 오류 메시지, UI 문자열을 번역하고 해당 번역을 리소스 파일에 저장해야 합니다.

리소스 파일의 모든 문자열에는 고유 식별자가 있습니다. 각 리소스 파일의 번역된 문자열에 동일한 식별자를 사용합니다. 예를 들어 “String1”이 기본 리소스 파일에 있는 첫 번째 문자열의 식별자인 경우 언어별 리소스 파일의 첫 번째 문자열에 동일한 식별자를 사용합니다.

Visual Studio SharePoint 애플리케이션에서 일반적으로 지역화하는 세 가지 영역(기능, ASPX 페이지 변경 내용, 코드)이 있습니다. 예시를 위해 다음 섹션에서는 독일어와 일본어로 지역화하려는 SharePoint 솔루션이 있다고 가정합니다. 기본 언어는 영어입니다.

기능 지역화

기능을 지역화하려면 하드 코드된 기능 제목 및 설명 대신 지역화된 리소스 파일의 번역된 제목 및 문자열을 참조하는 식을 사용해야 합니다. Visual Studio의 기능 디자이너에서 이 변경 작업을 수행합니다.

영어 기능을 독일어와 일본어로 지역화하려면 영어, 독일어, 일본어의 세 가지 리소스 파일 프로젝트 항목을 프로젝트에 추가합니다. 기능 리소스 파일은 ASPX 태그 또는 코드를 지역화하는 데 사용할 수 없습니다. 별도의 리소스 파일이 필요합니다.

기능 리소스 파일을 만든 후 번역된 문자열을 추가합니다. 다음 형식의 식을 사용하여 지역화된 문자열에 액세스합니다.

$Resources:String ID

Visual Studio의 기능 리소스 이름은 항상 리소스입니다. 고정 언어가 아닌 다른 언어를 선택하면 문화권 ID가 리소스 파일 이름에 추가됩니다. 예를 들어 고정 언어(기본) 기능 리소스 파일을 추가하는 경우 파일 이름은 Resources.resx가 됩니다. 일본어(일본) 문화권을 선택하여 언어별 기능 리소스를 추가하는 경우 파일 이름은 Resources.ja-JP.resx가 됩니다. 기능 리소스 파일 이름은 자동으로 할당되며, 변경할 수 없습니다.

기능 리소스의 범위는 리소스가 추가된 기능의 로컬 범위입니다. 솔루션의 모든 기능 또는 요소 파일에서 사용할 수 있는 리소스를 만들려면 기능 리소스 파일 대신 전역 리소스 파일 프로젝트 항목을 추가합니다. 전역 리소스 파일 프로젝트 항목은 새 항목 추가 대화 상자에서 SharePoint 아래의 2010 폴더에 있습니다. 전역 리소스 파일은 SharePoint 루트 폴더의 \Resources 폴더에 배포됩니다.

기능을 지역화하려면

  1. 솔루션 탐색기에서 Feature1 노드의 바로 가기 메뉴를 열고 기능 리소스 추가를 선택합니다.

  2. 리소스 추가 대화 상자의 목록에서 고정 언어를 기본 언어 기능 리소스 파일의 문화권으로 선택합니다.

  3. 지역화된 언어마다 이전 단계를 반복하여 지역화된 기능 리소스 파일에 대해 선택한 언어를 선택합니다.

    기본 언어와 지원할 지역화된 언어마다 하나씩 별도의 기능 리소스 파일이 만들어집니다.

  4. 리소스 편집기에서 각 리소스 파일을 연 다음 문자열 ID와 그 값을 모두 입력합니다.

    예를 들어 기본 기능 리소스 파일에서 내 기능 제목의 값과 함께 제목의 문자열 ID를 입력하고 내 기능 설명의 값과 함께 설명의 두 번째 문자열 ID를 입력합니다. 지역화된 각 리소스 파일에 대해 기본 기능 리소스에서 사용된 동일한 문자열 ID를 사용하지만 값의 지역화된 문자열을 입력합니다.

  5. 모든 리소스 값을 입력한 후 Feature1.feature와 같은 기능의 바로 가기 메뉴를 연 다음 디자이너 보기를 선택하여 기능 디자이너에서 기능을 엽니다.

  6. 기능에서 제목설명 필드를 지역화하려면 다음 형식을 사용하여 해당 상자에 값을 입력합니다.

    $Resources:문자열 ID

    예를 들어 기능 제목 상자에 $Resources:Title을 입력하고 기능 설명 상자에 $Resources:Description을 입력합니다.

    문자열 ID는 리소스 파일에서 사용되는 것과 일치해야 합니다.

  7. F5 키를 선택하여 애플리케이션을 빌드하고 실행합니다.

  8. SharePoint에서 사이트 작업 메뉴를 열고 사이트 설정을 선택한 다음 사이트 작업 섹션에서 사이트 기능 관리 링크를 선택합니다.

  9. SharePoint에서 기본값을 설정된 표시 언어를 변경합니다.

    지역화된 기능 제목 및 설명이 애플리케이션에 표시됩니다. 지역화된 리소스를 표시하려면 SharePoint 서버에 리소스 파일의 문화권과 일치하는 언어 팩이 설치되어 있어야 합니다.

ASPX 페이지 태그 지역화

ASP.NET 페이지를 지역화하려면 영어, 독일어, 일본어의 세 가지 리소스 파일 프로젝트 항목을 프로젝트에 추가합니다. 태그 외에 코드를 지역화할 필요가 없는 경우 전역 리소스 파일을 대신 추가할 수 있습니다.

ASP.NET(.aspx) 페이지는 일반적으로 하드 코딩된 문자열 값을 사용합니다. 이러한 문자열을 지역화하려면 지역화된 리소스를 참조하는 식으로 대체합니다.

ASPX 태그를 지역화하려면

  1. 별도의 리소스 파일(기본 언어용 및 지역화된 각 언어용 리소스 파일)을 추가합니다.

    코드가 아닌 태그만 지역화하는 경우 전역 리소스 파일 프로젝트 항목을 추가합니다. 코드 및 태그를 지역화하는 경우 리소스 파일 프로젝트 항목을 추가합니다.

    1. 전역 리소스 파일을 추가하려면 솔루션 탐색기에서 SharePoint 프로젝트 항목의 바로 가기 메뉴를 연 다음 추가>새 항목을 선택합니다. SharePoint 2010 노드 아래에서 전역 리소스 파일 템플릿을 선택합니다.

    2. 리소스 파일을 추가하려면 솔루션 탐색기에서 SharePoint 프로젝트 항목의 바로 가기 메뉴를 연 다음 추가>새 항목을 선택합니다. 리소스 파일 템플릿을 선택합니다.

    참고 항목

    배포 유형 속성을 사용하도록 설정하려면 SharePoint 프로젝트 항목에 리소스 파일을 추가해야 합니다. 이 속성은 이 절차의 후반부에서 필요합니다. 솔루션에 SharePoint 프로젝트 항목이 없는 경우 빈 SharePoint 프로젝트를 추가하고 기본 Elements.xml 파일을 제거할 수 있습니다.

  2. 기본 언어 리소스 파일에 MyAppResources.resx 같은 .resx 확장명을 붙여 원하는 이름을 지정합니다. 지역화된 각 리소스 파일에 동일한 기본 이름을 사용하지만 문화권 ID를 추가합니다. 예를 들어 독일어로 지역화된 리소스의 이름을 MyAppResources.de-DE.resx로 지정합니다.

  3. 각 리소스 파일의 배포 유형 속성 값을 AppGlobalResource로 변경하여 리소스 파일이 서버의 App_GlobalResources 폴더에 배포되도록 합니다. App_GlobalResources 폴더는 C:\inetpub\wwwroot\wss\VirtualDirectories\<port number>\App_GlobalResources에 있습니다.

  4. 리소스를 사용하여 ASPX 태그 외에도 코드를 지역화하는 경우 각 파일의 빌드 작업 속성 값을 포함된 리소스로 둡니다. 리소스 파일을 태그만 지역화하는 경우 필요에 따라 파일의 속성 값을 Content로 변경할 수 있습니다. 자세한 내용은 SharePoint 솔루션 지역화를 참조하세요.

    참고 항목

    비전역 리소스 파일을 사용하는 경우 배포 유형 속성과 기타 SharePoint 관련 속성을 사용하려면 프로젝트 항목 폴더로 이동합니다.

  5. 각 리소스 파일을 열고 각 파일에서 동일한 문자열 ID를 사용하여 지역화된 문자열을 추가합니다.

  6. ASPX 페이지 또는 컨트롤에 대한 XML 태그에서 하드 코딩된 문자열을 다음 형식을 사용하는 값으로 대체합니다.

    <%$Resources:Resource File Name, String ID%>
    

    예를 들어 애플리케이션 페이지에서 레이블 컨트롤의 텍스트를 지역화하려면 다음을 변경합니다.

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. F5 키를 선택하여 애플리케이션을 빌드하고 실행합니다.

  8. SharePoint에서 기본값을 설정된 표시 언어를 변경합니다.

    지역화된 문자열이 애플리케이션에 나타납니다. 지역화된 리소스를 표시하려면 SharePoint 서버에 리소스 파일의 문화권과 일치하는 언어 팩이 설치되어 있어야 합니다.

코드 지역화

기능 문자열과 ASP.NET 변경 내용 지역화뿐 아니라 솔루션 코드에 표시되는 메시지 문자열과 오류 문자열도 지역화해야 합니다. 지역화된 정보 및 오류 메시지는 위성 어셈블리에 포함됩니다. 위성 어셈블리는 예외 등의 출력 메시지, UI 텍스트와 같이 사용자에게 표시되는 문자열을 포함합니다.

Visual Studio는 표준 .NET Framework 허브 및 스포크 모델을 사용합니다. 허브 또는 주 프로그램 어셈블리는 기본 언어 리소스를 포함합니다. 스포크 또는 위성 어셈블리는 언어별 리소스를 포함합니다. 자세한 내용은 리소스 패키지 및 배포를 참조하세요. 위성 어셈블리는 리소스(.resx) 파일에서 컴파일됩니다. 프로젝트 및 솔루션 패키지에 언어별 리소스 파일을 추가하면 Visual Studio는 리소스 파일을 {Project Name}.resources.dll이라는 위성 어셈블리로 컴파일합니다.

코드를 지역화하려면

  1. 솔루션 탐색기에서 프로젝트 항목의 바로 가기 메뉴를 열고 추가>모듈을 선택합니다.

    리소스 파일 템플릿을 선택합니다.

    참고 항목

    배포 유형 속성을 사용할 수 있도록 SharePoint 프로젝트 항목에 리소스 파일을 추가해야 합니다. 이 속성은 이 절차의 후반부에서 필요합니다.

  2. 기본 언어 리소스 파일에 MyAppResources.resx 같은 .resx 확장명을 붙여 원하는 이름을 지정합니다.

  3. 1단계와 2단계를 반복하여 지역화된 언어마다 하나씩 별도의 리소스 파일을 SharePoint 프로젝트 항목에 추가합니다.

    지역화된 각 리소스 파일에 동일한 기본 이름을 사용하지만 문화권 ID를 추가합니다. 예를 들어 독일어로 지역화된 리소스의 이름을 MyAppResources.de-DE.resx로 지정합니다.

  4. 각 리소스 파일을 열고 지역화된 문자열을 추가합니다. 각 파일에서 동일한 문자열 ID를 사용합니다.

  5. 각 리소스 파일의 배포 형식 속성의 값을 AppGlobalResource로 변경하여 각 파일이 서버의 App_GlobalResources 폴더에 배포되도록 합니다.

  6. 각 파일의 빌드 작업 속성의 값을 포함 리소스로 둡니다.

    포함 리소스는 프로젝트의 DLL로 컴파일됩니다.

  7. 프로젝트를 빌드하여 리소스 위성 DLL을 만듭니다.

  8. 패키지 디자이너에서 고급 탭을 선택하고 위성 어셈블리를 추가합니다.

  9. 위치 상자에서 문화권 ID 폴더를 위치 경로 앞에 추가합니다(예: de-DE\<프로젝트 항목 이름>.resources.dll).

  10. 솔루션이 아직 System.Web 어셈블리를 참조하지 않는 경우 어셈블리에 대한 참조를 추가하고 System.Web에 코드 지시문을 추가합니다.

  11. 사용자에게 표시되는 코드에서 UI 텍스트, 오류 및 메시지 텍스트와 같은 하드 코딩된 모든 문자열을 찾습니다. 다음 구문을 사용하여 GetGlobalResourceObject 메서드를 호출하여 이러한 문자열을 바꿉니다.

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. F5 키를 선택하여 애플리케이션을 빌드하고 실행합니다.

  13. SharePoint에서 기본값을 설정된 표시 언어를 변경합니다.

    지역화된 문자열이 애플리케이션에 나타납니다. 지역화된 리소스를 표시하려면 SharePoint 서버에 리소스 파일의 문화권과 일치하는 언어 팩이 설치되어 있어야 합니다.

지역화되지 않은 코드는 하드 코드된 문자열 값을 사용합니다. 코드 문자열을 지역화하려면 지역화된 리소스를 참조하는 메서드인 GetGlobalResourceObject에 대한 호출로 대체합니다.

웹 파트 코드 지역화

웹 파트에는 WebDisplayName, Category, Webdisplayname 등의 하드 코드된 문자열을 사용하는 코드 특성을 포함하는 사용자 지정 속성 편집기 기능이 포함되어 있습니다. 이러한 특성의 문자열 값을 바꾸려면 특성 클래스에서 파생되는 별도의 클래스를 만듭니다. 해당 클래스에서 특성 속성을 설정합니다. 특성 속성은 기본 클래스에 따라 달라집니다. 예를 들어 WebDisplayName 특성 속성은 DisplayNameValue이고, WebDescription 특성 속성은 DescriptionValue입니다.

파생 클래스에서 리소스 파일의 문자열 ID 및 ResourceManager 개체를 참조하여 문자열 ID의 지역화된 값을 가져옵니다. 이 값을 속성 편집기 특성에 반환합니다.

참고 항목