상세 컨텐츠

본문 제목

ASP.NET 다국어 처리

Web/ASP.NET

by 탑~! 2013. 10. 21. 10:13

본문

[1. Resource파일 생성]




[Resource.ko-KR.resx]



[Resource.en-US.resx]



->이름컬럼은 동일한 코드를 사용하고 값컬럼에 언어별 값을 넣을것.





[2. 로그인 처리 화면]


로그인 버튼(ImageButton) : btn_logok

언어 선택 박스(DropDownList) : opt_lng     

                                              [value : ko-KR, Text : Korean

                                               value : en-US, Text : English]


Login.aspx.cs

public partial class Login : System.Web.UI.Page

{

// 로그인 이미지버튼 클릭 이벤트

protected void btn_logok_Click(object sender, ImageClickEventArgs e)

{   

bool lng = false;


// 세션에 언어코드(LngCd) 키가 이미 생성되어있는지 확인

// 이미 생성되어있다면 변수 lng은 true, 키가 생성되지 않았다면 번수  lng 은 false

 foreach (var key in Session.Contents.Keys)

{

if (key.ToString() == "LngCd") lgn = true;  

}


//  lng이 true이면 세션 LngCd에 선택된 언어코드 입력

// lng이 false이면 세션 LngCd 생성 후 선택된 언어코드 입력

If (lng == true) Session["LngCd"] = opt_lng.SelectedValue;             

          else Session.Add("LngCd", opt_lng.SelectedValue); 

}


        protected void Page_Load(object sender, EventArgs e)

        {

        } 

}



Login.aspx

<asp:ImageButton runat="server" ID="btn_logok" OnClick="btn_logok_Click" alt="" />





[3. 다국어 처리 될 화면]

Main.aspx.cs

using System;

using System.Globalization;


public partial class Main : System.Web.UI.Page

{

protected override void InitializeCulture()

{

bool  lng = false;


// 세션에 언어코드(LngCd) 키가 이미 생성되어있는지 확인

// 이미 생성되어있다면 변수 lng은 true, 키가 생성되지 않았다면 번수  lng 은 false

 foreach (var key in Session.Contents.Keys)

{

if (key.ToString() == "LngCd") lgn = true;  

}


// lng이 false이면 세션 LngCd 생성 후 디폴트 언어코드 입력

if ( lng == false) Session.Add("LngCd", "ko-KR");


// Culture와 CultureInfo에 세션 LngCd에 저장 된 언어코드 입력

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Session["LngCd"].ToString());

System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["LngCd"].ToString());


base.InitializeCulture();

 }


protected void Page_Load(object sender, EventArgs e)

{

}

}



출처 : http://blog.naver.com/es_sua?Redirect=Log&logNo=161628528


관련글 더보기