국제화/메세지

Shaun·2022년 9월 24일
1

ThymeLeaf

목록 보기
3/4
post-thumbnail

메세지

  • 만약 수백개의 페이지가 있는 사이트의 GNB 이름을 다시 설정 한다 하면 어떻게 수정 할것인가??

  • 물론 하나하나 복사 붙이기해서 수정할수 있지만 더 좋은 방법은 '메세지' 방법을 사용하는것

  • 한 마디로 하드코딩이 아닌 어디선가 저장되어 있는 것을 가져다가 쓰는 방법이다. 수정시 이 파일을 고쳐 변경전파를 자유롭게 할수 있다는 장점이 있다.

  • messsage.properties 라는 파일을 만들고 th:text = "#{item.itemName}" 로 호출 가능

메세지를 사용하려면

  • 메세지 기능을 사용하려면 인터페이스 messageSource 의 구현체인 ResourceBundleMessageSource 를 빈으로 등록해주면 됀다.

  • but 스프링 부트가 자동으로 MessageSource 빈등록 해줌. 그래서 이렇게 간략하게만 properites에 설정 해주면됀다.

  • basename 을 message 로 설정하면 message.properties를 읽어서 사용함.

  • 국제화 사용시 여기에 추가 x, 그냥 파일만 message. xx 하면 자동 인식

  • 디폴트가 message 라는 이름을 사용하기 때문에 생략 가능

Test


  • locale 을 null로 줬기때문에 디폴트인 message.properties 에서 hello 라는 값을 읽어온다

  • 해당 값이 없을떄는 디폴트 메시지도 가능

  • 이렇게 두번째 매개변수로 치환 가능

어플리케이션 적용

  • 어플리케이션 적용도 어렵지 않다. 위에서 배운대로 message에 해당하는 언어를 넣어주고 th:text = "#{label.item}" 이런식으로 해당 HTML태그 안에 넣어주면 됀다.

  • 이런식으로 각각 언어에 맞게 만들어준다. 그러면 accpet-language 를 읽어 알아서 적용 됌.

국제화

  • 쉽게 말해 영어권 국가에서 사이트를 열어보면 영문이 나오고 일본에서 접속하면 일어로 나오게 하는 기능

  • message_ko.properties / message_en.properties 이런 방식으로 파일 이름을 만들어주면 스프링에서 자동으로 인식

  • HTTP accept-language 헤더값 사용해서 어느권에서 접속한것인지 알수 있다.

profile
호주쉐프에서 개발자까지..

0개의 댓글