Spring + locale¿¡ µû¸¥ ´Ù±¹¾î ¼³Á¤
À̹ø ±ÛÀº Spring ÇÁ·ÎÁ§Æ®¿¡ ´Ù±¹¾î¸¦ Áö¿øÇÒ ¼ö ÀÖ°Ô ¼³Á¤ÇÏ´Â ¹æ¹ýÀÌ´Ù.
ȸ»ç¿¡¼ Çѱ¹, ¿µ¾î, ÀϺ», Áß±¹¾î ÆäÀÌÁö ³»¿ëÀÌ ´Ù ´Ù¸£´Ù°í 4¹úÀ» Â¥ÀÚ´Â ¸»°°Áöµµ ¾ÊÀº ¼Ò¸®°¡ ³ª¿Í¼ ¼³Á¤Çغ½.
À¥À» Çϳª¸¸ °³¹ßÇÏ°í ´Ù±¹¾î ÇÁ·ÎÆÛƼ¸¸ ÀÛ¼ºÇؼ ÇÁ·ÐÆ®¿¡ ¸Þ¼¼Áö¸¦ ÁÖ¸é µÇ´Â°Çµ¥ ¸»ÀÌÁö...
¿¾³¯»ç¶÷µéÀÌ ¸¹¾Æ¼ ±×·±°¡ ÂÍ º°·çÀÓ...
¾ÏÆ° ³ª´Â ±×·¸°Ô ÇÏ±â ½È¾î ´Ù±¹¾î ¼³Á¤À» Çغ»´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!-- context-locale.xml --> <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:messages/messages"/> <property name="defaultEncoding" value="UTF-8"/> </bean> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> <property name="defaultLocale" value="ko"/> </bean> </beans> | cs |
xml·Î ºó ¼³Á¤ÆÄÀÏÀ» ÀÛ¼ºÇÑ´Ù.
messageSource ´Â locale¿¡ ¸Â°Ô ÇØ´ç ±¹°¡ ¾ð¾î ¸Þ¼¼Áö ÇÁ·ÎÆÛƼ¸¦ °¡Á®¿À±â À§ÇØ °æ·Î¸¦ ÁöÁ¤ÇØÁØ´Ù.
³ª´Â classpath ÇÏÀ§¿¡ messages Æú´õ¿¡ messages_en.properties, messages_ko.properties µîµî ±¹°¡ ¸Þ¼¼Áö ÆÄÀϵé...
±âº» ÀÎÄÚµùÀ» utf-8·Î ÁöÁ¤ÇÏ¿´´Ù.
±× ´ÙÀ½ localeResolver ´Â 3°¡Áö ¹æ½ÄÀÌ Àִµ¥ ³ª´Â ¼¼¼Ç»óÅ¿¡ µû¸¥ localeÀ» °¡Á®¿Í¼ »ç¿ëÇÒ °ÍÀÌ´Ù.
±× ¿Ü¿¡ AcceptHeaderLocaleResolver °¡ Àִµ¥ À̳༮ÀÌ localeResolverÀÇ µðÆúÆ® °ªÀÌ´Ù.
localeResolver¸¦ ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é µðÆúÆ®·Î AcceptHeaderLocaleResolver À¸·Î ¼³Á¤µÈ´Ù.
AcceptHeaderLocaleResolver À̳༮Àº ºê¶ó¿ìÀú ¼³Á¤µÈ ¾ð¾î°ªÀ» »ç¿ëÇÑ´Ù°í ÇÏ´Ï »ç¿ëÀÚÀÇ UI»óÀÇ ¾ð¾îº¯°æÀ¸·Î ¾ð¾î¸¦ ¹Ù²ãÁÙ ¼ö ¾ø´Ù.
±× ´ÙÀ½Àº CookieLocaleResolver Àε¥ À̳༮Àº ¸»±×´ë·Î ÄíÅ°¿¡ localeÀ» ¼³Á¤ÇÏ°í ¹Ù²ãÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù.
³ª´Â ¼¼¼ÇÀ» ÁÖ·Î »ç¿ëÇϹǷΠSessionLocaleResolver¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.
±×¸®°í µðÇÃÆ® ±¹°¡¾ð¾î·Î ko Çѱ¹¾î¸¦ ÁöÁ¤Çسõ¾Ò´Ù.
1 2 3 4 5 6 | <!-- context-servlet.xml --> <interceptors> <beans:bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <beans:property name="paramName" value="lang"/> </beans:bean> </interceptors> | cs |
À̺κÐÀº ÆĶó¹ÌÅÍ·Î ±¹°¡Äڵ带 ¹Ù²åÀ»¶§ ÀÎÅͼÁÅÍÇؼ ¾ð¾î¸¦ ¹Ù²ãÁÖ´Â ¿ªÇÒÀ» ÇÏ´Â ºÎºÐÀÌ´Ù.
³ª´Â ÇÊ¿ä¾øÀ» °Í °°±äÇѵ¥... ÆĶó¹ÌÅÍ·Î ³¯·Á¼ ¹Ù²Ü »óȲÀÌ ¿ÀÁö ¾ÊÀ»±î Çؼ ³²°Ü³õ´Â´Ù.
¿¹¸¦ µé¸é ÀÌ·±½ÄÀ¸·Î...
http://localhost:8000/default/?lang=en
ÀÌÁ¦ ±¹°¡Äڵ忡 µû¸¥ ¸Þ¼¼Áö¸¦ ÀÔ·ÂÇØÁØ´Ù.
ÀÏ´Ü en°ú ko Á¤µµ¸¸ ÇÏÀÚ.
1 2 | # messages_ko.properties jb.common.title=½ºÇÁ¸µÇÁ·ÎÁ§Æ® | cs |
1 2 | # messages_en.properties jb.common.title=SpringProject | cs |
ÀÌ·¸°Ô °°Àº À̸§À¸·Î ¿µ¾î¿Í ÇѱÛÀ» ÀÛ¼ºÇØÁÖ¸é µÈ´Ù.
¿©±â¼!
¾Æ¸¶ ÀÌŬ¸³½º³»¿¡ propertiesEditor °¡ ¾ø´Â ºÐµéÀº ÇÑ±Û ¸Þ¼¼ÁöÆÄÀÏÀÌ utf-8 ¸ð¾çÀ¸·Î ³ª¿Ã°ÍÀÌ´Ù.
1 2 | # messages_ko.properties jb.common.title=\uc2a4\ud504\ub9c1\ud504\ub85c\uc81d\ud2b8 | cs |
±×·¯¸é ÇÁ·ÎÆÛƼ ¿¡µðÅ͸¦ ÀÌŬ¸³½º¿¡ ´Ù¿î¹Þ¾Æ¼ ¸Þ¼¼Áö ÇÁ·ÎÆÛƼÆÄÀϸ¸ '¿ìŬ¸¯ - openWith' ¿¡¼ ¿¡µðÅ͸¦ ¹Ù²ãÁÖ¸é ÇѱÛÀ» º¼ ¼ö ÀÖ´Ù.
ÀÌÁ¦ jsp ÆäÀÌÁö¿¡¼ ÀÚµ¿À¸·Î ±¹°¡Äڵ忡 µû¶ó ¹Ù²ð ¼ö ÀÖ°Ô ¼ÂÆÃÀ» ÇØÁà¾ß °ÚÁö¿ä~~
1 2 3 4 5 6 | ... <h1> Hello world! <spring:message code="jb.common.title"/> </h1> ... | cs |
taglib ¶óÀ̺귯¸® ¼³Á¤ÇØÁֽðí
ÇØ´ç ±¹°¡º° ¾ð¾î¼³Á¤ÇÒ °÷¿¡ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇØÁÖ½Ã¸é µË´Ï´Ù.
´Ù±¹¾î ÆäÀÌÁö¸¦ ¿©·¯¹ú ÀÛ¼ºÇÏÁö ¾Ê°íµµ ÀÌ·¸°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.