지역화 (Localization), 전역화 (Glovalization) - 다중 언어 처리
.NET프로그래밍/ASP.NET 3.5 SP1 2009. 10. 27. 02:00 |* 한번만 만들어 두고 리소스 파일만 여러개 만들어 놓으면 다중언어처리가 가능하다.
* 동적으로 문화권 변경 가능
// KOREA : ko-KR
// USA : en-US
// 태국 : th-TH
//[0] 동적으로 문화권 변경
//System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
//[1] 현재 언어에 따른 정보 읽어오기
CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
//[2] 문화권 정보 읽어오기
string s = "";
s += "문화권 이름 : " + ci.Name + "<br />";
s += "문화권 표기명 : " + ci.DisplayName + "<br />";
s += "문화권 영어명 : " + ci.EnglishName + "<br />";
s += "문화권 본래 이름 : " + ci.NativeName + "<br />";
//[3] 출력
Response.Write(s);
* 서버 측 문화권 설정
1. web.config 파일의 <globalization> 요소 단락 정의하기
<!-- 문화권 설정 -->
<globalization culture="en-US" uiCulture="en-US" />
애플리케이션에 적용된 문화권은 미국의 영어이다.
Culture 특성을 사용하면 서버로 들어오는 요청을 처리하는 데 사용하는 문화권을 설정할 수 있다.
uiCulture 특성을 사용하면 애플리케이션의 모든 리소스 파일을 처리하는 데 필요한 기본설정 문화권을 설정할 수 있다.
2. @Page 지시문으로 페이지 수준에 문화권 설정하기
<%@ Page Language="C#" UICulture="en-US" Culture="en-US" %>
그 문화권 설정을 페이지에 적용한다.
* 클라이언트 측 문화권 설정
브라우저의 인스턴스에서 클라이언트의 선호에 따라 그에 맞는 문화권 설정 가능
[도구] - [인터넷옵션] - [언어] 버튼
[추가] 버튼을 눌러서 원하는 문화권 선택, 문화권이 적용되는 순서 지정 가능
1. 사용자가 선택한 문화권에 따라 자동으로 변경하기
<%@ Page Language="C#" culture="auto" uiculture="auto" %>
임의의 구성설정 파일이나 @Page 지시문에서 특정 문화권을 지정하지 않고, 사용자가 페이지를 요청할 때 제공한 문화권을 ASP.NET에서 자동으로 설정.
culture="auto"와 uiculture="auto"를 삭제하고 global파일에서 en-US로 언어를 지정하면 영어로 웹페이지를 보여준다.
각각의 페이지에 auto속성으로 잡아주면 클라이언트 측(도구-인터넷옵션)을 따라가게 되고 생략하면 web.config 파일의 글로벌라이제이션(globalization)에 정의한 데로 따라간다.
* 지역 리소스 파일 사용하기
페이지 별로 하나씩 만들어 줌.
해당 페이지를 비주얼 스튜디오에서 열고 비주얼 스튜디오 메뉴에서 [도구] - [로컬 리소스 생성] 선택.
APP_LocalResources 폴더가 없을 경우 이 폴더를 프로젝트에 생성.
페이지 지시문에 meta:resourcekey="PageResource1" uiculture="auto" 추가됨.
이 ASP.NET 페이지를 기반한 .resx 파일은 App_LocalResouces 폴더에 위치.
예를 들면 Default.aspx 페이지를 다룬다면 리소스 파일은 Default.aspx.resx로 이름 붙여진다.
또 다른 언어 리소스 파일 추가하려면 Default.aspx.resx 파일을 복사해서 붙여넣기 한다음, Default.aspx.ru.resx 파일명을 사용한다면 각 서버 컨트롤의 속성 값을 설정해서 러시아어를 사용하는 리소스 파일을 만들 수 있다.
- Login.aspx 페이지를 다중 언어로 구현하고 싶을 때...
기본값은 코드에서 잡아두고 로컬 리소스를 추가해서 값을 변경하면 변경된 값이 웹 브라우저에 보여짐.
페이지에 메타 특성이 지정되면 리소스 파일의 값을 따라가게 된다.
리소스 파일을 복사해서 붙여 넣은 다음 이름에 Login.aspx.en.resx 파일명 지정하면 미국 사람이 웹페이지 볼 경우 우선순위가 영어가 높기 때문에 영어로 보여주고 한국인이 웹페이지를 본다면 한국어가 우선순위 높기 때문에 한국어로 웹페이지를 보여주게 된다.
* 전역 리소스 파일 사용하기
여러 페이지에 걸쳐서 사용할 수 있는 전역 리소스 파일 생성.
여기에 만들어 둔 리소스 키 값은 웹사이트 전체에서 사용 가능.
프로젝트 우클릭해서 [새 항목 추가]로 리소스 파일을 생성하자.
- 전역 리소스 파일 가져오는 방법
1. 서버 컨트롤을 선언할 때 값을 직접 조작
<asp:Button ID="btnOK2" runat="server" Text="<%$ Resources:Resource, OK %>" />
2. 코드 비하인드 페이지에서 설정
전역 리소스 파일에 설정된 값으로 초기화
btnOK1.Text = Resources.Resource.OK;
'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글
ASP.NET의 주요 명령어 정리 복습 (0) | 2009.10.29 |
---|---|
웹 파트(WebParts) 컨트롤 (0) | 2009.10.28 |
지역화 (Localization) (0) | 2009.10.27 |
XML 웹 서비스 (0) | 2009.10.27 |
WebUser - 초간단 회원 관리 (인증 및 허가) 기능 구현 (0) | 2009.10.25 |