SharePoint 솔루션 지역화
전 세계에서 사용할 수 있도록 응용 프로그램을 준비하는 프로세스를 지역화라고 합니다. 지역화는 리소스를 특정 문화권으로 번역하는 것입니다. 자세한 내용은 응용 프로그램 전역화 및 지역화를 참조하십시오. 이 항목에서는 SharePoint 솔루션을 지역화하는 방법에 대해 간략하게 설명합니다.
솔루션을 지역화하려면 하드 코드된 문자열을 코드에서 제거하여 리소스 파일에 추상화합니다. 리소스 파일은 확장명이 .resx인 XML 기반 파일입니다. 리소스 파일에는 솔루션에서 사용되는 문자열의 번역된 버전이 포함됩니다. 자세한 내용은 응용 프로그램의 리소스를 참조하십시오.
참고
SharePoint 솔루션 리소스 파일에 문자열 리소스만 추가하십시오. 리소스 편집기를 사용하여 문자열이 아닌 리소스를 추가할 수 있지만 문자열이 아닌 리소스는 SharePoint에 배포되지 않습니다.
리소스 파일
리소스 파일에는 기본 리소스 파일, 언어 중립적인 리소스 파일 및 언어별 리소스 파일이 있습니다.
리소스 파일 유형 |
설명 |
---|---|
기본값 |
대체 리소스라고도 하는 기본 리소스 파일은 영어와 같은 기본 문화권에 대해 지역화된 문자열을 포함하며 지정된 언어에 대한 지역화된 리소스 파일을 찾을 수 없는 경우 사용됩니다. 기본 리소스에는 별도의 파일이 없으며 기본 리소스는 주 응용 프로그램 어셈블리에 저장됩니다. |
언어 중립적인 리소스 파일 |
특정 문화권이 아니라 언어에 대해 지역화된 문자열을 포함하는 리소스 파일입니다. 예를 들어, 프랑스어의 경우 "fr"입니다. |
언어별 리소스 파일 |
언어와 문화권에 대해 지역화된 문자열을 포함하는 리소스 파일입니다. 예를 들어, 프랑스어(캐나다)의 경우 "fr-CA"입니다. |
자세한 내용은 지역화를 위한 리소스의 계층적 구성을 참조하십시오.
Visual Studio SharePoint 프로젝트에서 기본 리소스 파일을 지정하려면 리소스 파일을 추가할 때 리소스 추가 대화 상자의 문화권 목록에서 **고정 언어(고정 국가)**를 선택합니다.
Visual Studio SharePoint 솔루션 지역화
솔루션을 지역화할 때 솔루션에서 사용자에게 표시하는 모든 텍스트 정보를 고려해야 합니다. 정보 메시지, 오류 메시지 및 UI 문자열을 번역하고 이러한 번역을 리소스 파일에 포함해야 합니다.
리소스 파일의 모든 문자열에는 고유 식별자가 있습니다. 각 리소스 파일의 번역된 문자열에 동일한 식별자를 사용합니다. 예를 들어, "String1"이 기본 리소스 파일의 첫 번째 문자열에 대한 식별자인 경우 언어별 리소스 파일에서 첫 번째 문자열에 동일한 식별자를 사용합니다.
Visual Studio SharePoint 응용 프로그램에서 일반적으로 지역화하는 세 가지 영역은 기능, ASPX 페이지 태그 및 코드입니다. 이를 설명하기 위해 다음 단원에서는 독일어와 일본어로 지역화할 SharePoint 솔루션이 있다고 가정합니다.. 기본 언어는 영어입니다.
기능 지역화
기능을 지역화하려면 기능의 하드 코드된 제목 및 설명을 지역화된 리소스 파일의 번역된 제목 및 문자열을 참조하는 식으로 바꿔야 합니다. Visual Studio의 기능 디자이너에서 이렇게 변경할 수 있습니다. 자세한 내용은 방법: 기능 지역화를 참조하십시오.
영어 기능을 독일어와 일본어로 지역화하려면 영어, 독일어 및 일본어에 해당하는 세 가지 리소스 파일 프로젝트 항목을 프로젝트에 추가합니다. 기능 리소스 파일을 사용하여 ASPX 태그 또는 코드를 지역화할 수 없습니다. ASPX 태그 또는 코드에는 별도의 리소스 파일이 필요합니다.
기능 리소스 파일을 만든 후에는 번역된 문자열을 기능 리소스 파일에 추가합니다. 다음 형식의 식을 사용하여 지역화된 문자열에 액세스합니다.
$Resources:String ID
Visual Studio에서 기능 리소스의 이름은 항상 Resources로 지정됩니다. 고정 언어 이외의 언어를 선택하면 문화권 ID가 리소스 파일 이름에 추가됩니다. 예를 들어, 고정 언어(기본값) 기능 리소스 파일을 추가하는 경우 Resources.resx로 이름이 지정되고 일본어(일본) 문화권을 선택하여 언어별 기능 리소스를 추가하는 경우에는 Resources.ja-JP.resx로 이름이 지정됩니다. 기능 리소스 파일 이름은 자동으로 할당되며 변경할 수 없습니다.
기능 리소스의 범위는 기능 리소스가 추가되는 기능에 대해 로컬입니다. 솔루션의 기능 또는 요소 파일에서 사용할 수 있는 리소스를 만들려면 기능 리소스 파일 대신 전역 리소스 파일 프로젝트 항목을 추가합니다. 전역 리소스 파일 프로젝트 항목은 새 항목 추가 대화 상자에서 SharePoint 아래의 2010 폴더에 있습니다. 전역 리소스 파일은 SharePoint 루트 폴더의 \Resources 폴더에 배포됩니다.
자세한 내용은 연습: Visual Studio SharePoint 응용 프로그램 지역화를 참조하십시오.
ASPX 페이지 태그 지역화
ASP.NET 페이지를 지역화하려면 영어, 독일어 및 일본어에 해당하는 세 가지 리소스 파일 프로젝트 항목을 프로젝트에 추가합니다. 태그 외에 코드를 지역화할 필요가 없는 경우에는 대신 전역 리소스 파일을 추가할 수 있습니다.
기본 언어 리소스 파일의 이름을 제공합니다. 지역화된 리소스 파일에 언어별 문화권 ID가 추가된 동일한 이름을 제공합니다. 예를 들어, 독일어의 경우 MyAppResources.de-DE.resx이고 일본어의 경우 MyAppResources.ja-JP.resx입니다.
각 리소스 파일의 배포 형식 속성을 AppGlobalResource로 설정합니다. 이렇게 하면 리소스 파일이 App_GlobalResources 폴더에 배포됩니다. 이 폴더에 있는 리소스 파일은 솔루션의 모든 ASPX 페이지 및 컨트롤에서 사용할 수 있습니다. App_GlobalResources 폴더는 C:\inetpub\wwwroot\wss\VirtualDirectories\<port number>\App_GlobalResources에 있습니다.
참고
전역이 아닌 리소스 파일을 사용하는 경우 이러한 파일을 프로젝트 항목 폴더로 이동하여 배포 형식 속성과 기타 SharePoint 관련 속성을 사용할 수 있도록 설정합니다.
ASPX 태그 리소스 파일을 사용하여 코드도 지역화할 수 있습니다. 리소스를 사용하여 ASPX 태그 외에 코드도 지역화하는 경우 각 파일의 빌드 작업 속성 설정을 포함 리소스로 설정하여 리소스가 위성 어셈블리로 컴파일되게 합니다. 그러나 리소스 파일을 사용하여 태그만 지역화하는 경우에는 선택적으로 빌드 작업을 내용으로 변경하여 파일이 주 응용 프로그램 어셈블리로 컴파일되지 않도록 할 수 있습니다.
ASPX 페이지 및 컨트롤 태그의 모든 하드 코드된 속성 문자열을 다음 형식의 식으로 바꿉니다.
<asp:<class> runat="server" Text="<%$Resources:<Resource File Name>, <String ID>%>" />
예를 들면 다음과 같습니다.
<asp:Button ID="btn1" runat="server" onclick="btn1_Click" Text="<%$Resources:Resource1,String7%>"></asp:Button>
텍스트인 ASPX의 경우 다음 형식의 식을 사용합니다.
<asp:literal ID="<ID>" runat="server" Text="<%$Resources:<Resource File Name>, <String ID>%>" />
예를 들면 다음과 같습니다.
<asp:literal ID="Literal1" runat="server" Text="<%$Resources:Resource1, String9%>" />
자세한 내용은 방법: ASPX 태그 지역화 및 연습: Visual Studio SharePoint 응용 프로그램 지역화를 참조하십시오.
코드 지역화
기능 문자열과 ASP.NET 태그를 지역화하는 것 외에도 솔루션 코드에 나타나는 메시지 문자열과 오류 문자열도 지역화해야 합니다. 지역화된 정보 메시지 및 오류 메시지는 위성 어셈블리에 포함됩니다. 위성 어셈블리에는 UI 텍스트 및 예외 등의 출력 메시지와 같이 사용자에게 표시되는 문자열이 포함됩니다.
Visual Studio에서는 표준 .NET Framework 허브 및 스포크 모델을 사용합니다. 허브, 즉 주 프로그램 어셈블리에는 기본 언어 리소스가 포함되고, 스포크, 즉 위성 어셈블리에는 언어별 리소스가 포함됩니다. 자세한 내용은 Packaging and Deploying Resources를 참조하십시오. 위성 어셈블리는 리소스 파일(.resx)에서 컴파일됩니다. 언어별 리소스 파일을 프로젝트와 솔루션 패키지에 추가하면 Visual Studio에서 리소스 파일을 Project Name.resources.dll이라는 위성 어셈블리로 컴파일합니다.
ASPX 태그의 경우와 마찬가지로 기본 언어와 지역화된 언어마다 하나씩 별도의 리소스 파일 프로젝트 항목을 프로젝트에 추가하여 SharePoint 응용 프로그램 코드를 지역화합니다. 그러나 앞에서 설명했듯이 ASPX 태그를 지역화하기 위한 리소스 파일이 이미 있는 경우에는 코드 지역화를 위해 해당 리소스 파일을 다시 사용할 수 있습니다. 리소스 파일을 만들어야 하면 기본 언어 리소스 파일에 선택한 이름을 지정하고 .resx 확장명을 추가합니다. 지역화된 리소스 파일에 언어별 문화권 ID가 추가된 동일한 이름을 지정합니다. 각 리소스 파일의 빌드 작업 속성을 포함 리소스로 설정하여 위성 리소스 어셈블리를 만들 수 있도록 설정합니다.
위성 어셈블리를 만들려면 프로젝트를 빌드한 다음 패키지 디자이너의 고급 탭을 통해 파일을 추가 어셈블리로 추가합니다. 어셈블리를 추가할 때 문화권 ID 폴더를 위치 경로 앞에 추가합니다(예: de-DE\Project Item Name.resources.dll). 이렇게 하면 패키지에 이름이 동일한 파일이 포함될 수 있습니다.
코드에서 다음 구문을 사용하여 하드 코드된 문자열을 GetGlobalResourceObject 메서드 호출로 바꿉니다.
HttpContext.GetGlobalResourceObject("<Resource File Name>", "<String ID>")
자세한 내용은 방법: 코드 지역화 및 연습: Visual Studio SharePoint 응용 프로그램 지역화를 참조하십시오.
웹 파트 코드 지역화
웹 파트에는 WebDisplayName, Category 및 WebDescription과 같이 하드 코드된 문자열을 사용하는 코드 특성이 포함된 사용자 지정 속성 편집기 기능이 포함됩니다. 이러한 특성의 문자열 값을 바꾸려면 특성의 클래스에서 파생되는 별도의 클래스를 만듭니다. 이러한 클래스에서 특성의 속성을 설정합니다. 특성 속성은 기본 클래스에 따라 달라집니다. 예를 들어, WebDisplayName 특성 속성이 DisplayNameValue이고 WebDescription 특성 속성이 DescriptionValue입니다.
파생 클래스에서 리소스 파일과 ResourceManager 개체에서 문자열 ID를 참조하여 문자열 ID의 지역화된 값을 가져옵니다. 이 값을 속성 편집기 특성에 반환합니다. 자세한 내용은 연습: Visual Studio SharePoint 응용 프로그램 지역화를 참조하십시오.
참고 항목
작업
방법: 리소스 파일을 사용하여 지역화된 이름, 속성 및 사용 권한 지정