* 한번만 만들어 두고 리소스 파일만 여러개 만들어 놓으면 다중언어처리가 가능하다.


* 동적으로 문화권 변경 가능


// 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;









Posted by holland14
: