๐ŸŒฑ Spring MVC (6) ๊ตญ์ œํ™” internationalization (๋‹ค๊ตญ์–ด ์ง€์›)

Kim Dae Hyunยท2021๋…„ 7์›” 10์ผ
0

Spring-MVC

๋ชฉ๋ก ๋ณด๊ธฐ
6/13
post-thumbnail

Github ์†Œ์Šค์ฝ”๋“œ

๐Ÿ”Ž ๊ตญ์ œํ™” ?

  • ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ(์„ค์ •) ํ˜น์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ค์ •ํ•œ Locale ์ •๋ณด์— ์ ํ•ฉํ•œ ์–ธ์–ด๋กœ View๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
  • Spring์˜ Message ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ๊ตญ์ œํ™” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Spring์˜ Message ๊ธฐ๋Šฅ์„ ๊ตญ์ œํ™” ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ View์˜ ๋ฌธ์ž๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์ผ๊ด€์„ฑ๊ณผ ๋ณ€๊ฒฝ์ง€์ ์˜ ๋‹จ์ผํ™” ๋“ฑ์„ ์ง€์›ํ•ด์ค๋‹ˆ๋‹ค.

๐Ÿ”Ž messages.properties

spring์—์„œ Message๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
messages.properties๋Š” code์™€ value๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
code=value ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • resources ํด๋” ์•„๋ž˜ applicaton.properties์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์— messages.properties์™€ messages_en.properties ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • messages.properties๋Š” default ์„ค์ •๊ฐ’์„ ์ œ๊ณตํ•  ์„ค์ •ํŒŒ์ผ๋กœ ํ•œ๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๊ณ , messages_en.properties๋Š” ์˜์–ด๋ฅผ ์ง€์›ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

messages.properties๋ถ€ํ„ฐ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

messages_en.properties ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์šฐ๋ฆฌ๋Š” hello์™€ hello.name, title์„ ์ฝ”๋“œ๋กœ ํ•˜๋Š” ์„ธ ๋ฌธ์ž๋ฅผ ๊ตญ์ œํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •์„ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”Ž ๊ตญ์ œํ™” ํ…Œ์ŠคํŠธ

์•„๋ž˜์™€ ๊ฐ™์€ View๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • thymeleaf์˜ #{ } ๋ฌธ๋ฒ•์€ message๋ฅผ ์œ„ํ•จ ์ž…๋‹ˆ๋‹ค.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1 th:text="#{title}">์ œ๋ชฉ</h1>
    <p th:text="#{hello}"></p>
    <p th:text="#{hello.name}"></p>
</body>
</html>

ํ…Œ์ŠคํŠธ ์ „์— ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ €์˜ ์–ธ์–ด ์„ค์ • ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Chrome ํ™˜๊ฒฝ์—์„œ ์–ธ์–ด ์„ค์ • ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • ์„ค์ • -> ๊ณ ๊ธ‰(์™ผ์ชฝํƒญ) -> ์–ธ์–ด

์ผ๋‹จ ํ•œ๊ตญ์–ด๋ฅผ ์ตœ์ƒ๋‹จ์— ๋‘๊ณ  ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์˜ ์–ธ์–ด ์ •๋ณด๋ฅผ ์˜์–ด๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฅผ ์žฌ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์–ธ์–ด ์„ค์ • ์ •๋ณด๋งŒ ๋ณ€๊ฒฝ ํ›„ ์ƒˆ๋กœ๊ณ ์นจ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์–ธ์–ด๊ฐ€ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ”„๋Ÿฐ ๊น€์˜ํ•œ๋‹˜์˜ ์Šคํ”„๋ง MVC 2ํŽธ ์„ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€