본문 바로가기

컴퓨터공학/JSP | Servlets | JDBC

JSP 기본> JSTL> 웹페이지 여러 언어로 표현하기

Java Resources -> src 폴더에 패키지를 만들어 준다.

여기에 들어가서 general -> files 을 클릭한다.

그리고 이런 식으로 이름을 작성


다른 언어들도 만들자

소문자는 언어고 대문자는 지역이다.

ISO 639-1 코드 목록 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

ISO 639-1 코드 목록

위키백과, 우리 모두의 백과사전. ISO 639는 언어 분류를 위해 사용되는 표준화된 명명법이다. 각 언어는 2글자(639-1) 및 3글자(639-2, 639-3)로 할당된다. 어족 ISO 언어 이름 네이티브 이름 639-1 639-2/T 63

ko.wikipedia.org

ISO 3166-2 - Wikipedia

 

ISO 3166-2

1 AR, BO, FJ, GM, KI, KM, LS, MG, SL, ST, TG, TM, VE First-level subdivisions only: BD, CV, FR, GN, GQ, GR, GW, KN, MH, MW, NZ, UG AT, GA, IS, NE First-level subdivisions only: LK, NP 2 AE, AM, BI, BJ, BN, BQ, BR, BS, BW, BY, CA, CD, CH, CL, CM, CN, DE, DJ

en.wikipedia.org

다른 언어를 사용하고 싶다면 위 링크에서 보자.

예시에서는 스페인어하고 독일어를 선택함

 

 

 

 

 

 

이제는 JSP 파일을 만들자.

 



지금 작성하고 있는 jsp 파일 이름이 i18n-messages-test.jsp 인데

하이퍼링크 내용을 보면 i18n-messages-test.jsp 과 theLocale 이 있다.

즉 저 링크를 누르면 자기자신을 부르는 것이니  페이지를 새로고침하는 것과 같다.

뿐만 아니라 theLocale값도 같이 가져간다..

예를 들어 첫 번째 링크를 클릭하면 theLocale=en_US  같이 들고 가는 것이다.

 

처음 c:set 부분을 보면 value 내용이 있는데  이 내용은

파라미터에 있는 theLocale 값이 무언가 있다면 파라미터에 있는 theLocale을  읽어오고

없다면 브라우저가 요청한 곳의 지역을 불러온다는 뜻이다..

하이퍼링크를 통해 갔다면 theLocale값이 있으니 거기서 따올 것이고

없다면 그냥 지역을 읽어서 가져올 것이다..

이것을 theLocale이라는 변수에 저장한다..

 

 

 

 

 

 

 

잘 만들어 놓은 변수 theLocale과 패키지를 설정해준다.

 

 

 

 

 

 

전체 코드를 보면서 원리를 이해하자..

c와 fmt 라이브러리를 불러오고

하이퍼링크를 통해서 오든 그냥 직방으로 오든 거기서 이용자의 언어, 지역 코드를 캐내어서

theLocale에 저장한다.

그리고 fmt에 theLocale를 저장하고 패키지가 저장되어 있는 곳을 알려준다.

그러면 라이브러리가 mylabels 에다 theLocale에 있는 값을 합쳐서 값을 만든다.

예를 들어 내가 es_ES라면

mylabels + _es_ES = mylabels_en_US  

이렇게 만들고 이것을 패키지에서 읽는다.

마지막으로 패키지 안에 있는 greeting firstname lastname welcome 값을 표현하면 완성이다.