MessageSource
About
Spring์ ๋ค๊ตญ์ด ์ฒ๋ฆฌ๋ก i18n (Internationalization (and Localization) - i-18-letters-n)์ ์ง์ํ๋ค. "์๋ ํ์ธ์"๊ฐ ์์ด๋ก "Hello"์ธ ๊ฒ์ฒ๋ผ, ๊ตญ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ธ์ด๋ก ๋ฉ์์ง๋ฅผ ๋ฐํํ ์ ์๋ค.
MessageSource
๋ฅผ ์ด์ฉํด Spring์์ ๊ณตํต ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
Message Property ํ์ผ ์ค์
.properties
๋๋ .yml
์ผ๋ก ๊ตญ๊ฐ๋ณ ๋ฉ์์ง๋ฅผ ์ ์ฅํ ์ ์๋ค. (๋จ, .yml์ ๋ฐ๋ก dependencies๋ฅผ ์ค์นํด์ผํ๋ ๋ฑ ์กฐ๊ธ ์ค์ ์ด ํ์ํ ๋ฏ ํ๋ค.)
๊ธฐ๋ณธ์
.properties
ํ์ผ์ด๋ค.ํ์ผ ์ด๋ฆ ์์์ ๋ค์๊ณผ ๊ฐ๋ค. -
{basename}_{์ธ์ด์ฝ๋}_{๊ตญ๊ฐ์ฝ๋}.properties
์์คํ ์ธ์ด ์ฝ๋์ ๋ฐ๋ผ ๋ค๋ฅธ ์ค์ ํ์ผ์ด ์ฌ์ฉ๋๋ค.
e.g.,
message_en_uk.properties
- ์๊ตญ ๋ฉ์์ง ์ค์ ํ์ผe.g.,
message_ko.properties
- ํ๊ตญ์ด ์ค์ ํ์ผ
messages.properties
ํ์ผ์ resources
๊ฒฝ๋ก ๋ฐ๋ก ๋ฐ์ ๋ง๋ ๋ค. ํด๋น ํ์ผ์ด ๋ํดํธ์ด๋ฉฐ, ์ด๋ฐ ์์ผ๋ก ๋ฉ์์ง๋ฅผ ์์ฑํ ์ ์๋ค.
๋ง์ฝ resources
๊ฒฝ๋ก ๋ด์์ ๋ค๋ฅธ ํด๋ (e.g., messages
) ํด๋์ ๋ฉ์์ง ํ์ผ๋ค์ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด application.yml
์์ ๋ค์๊ณผ ๊ฐ์ด basename์ ๋ณ๊ฒฝํด์ค๋ค.
MessageSource๋ก ๋ฉ์์ง ์ฌ์ฉํ๊ธฐ
์ค์ ์ ๋ง์ณค๋ค๋ฉด ์ด์ ๋ฉ์์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. Service๋ฅผ ๋ง๋ค ์๋ ์๊ณ , Handler, Accessor ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ด์ฉํด ๋ฉ์์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค. ๊ฒฐ๊ตญ ์คํ๋ง์ด๋ ๋น์ ๋ง๋ค์ด ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์์กด์ฑ ์ฃผ์
ํ๊ณ getMessage()
๋ฑ์ ํจ์๋ฅผ ๋ง๋ค์ด locale
์ ๋ง๊ฒ ๋ฉ์์ง๋ฅผ ๋ถ๋ฌ์ค๋ฉด ๋๋ค.
๊ฐ์ฅ ์์ฌ์๋ณด์ด๋ ๋ค์ ๋งํฌ ์ฐธ๊ณ .
๊ทธ๋ฆฌ๊ณ ์๋ฌ ๋ฉ์์ง๋ MessageSource๋ก (๋์ ์ผ๋ก) ์ค์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์์์ด ์ข์ ๋ณด์ด๋ ๋ค์ ๋งํฌ ์ฐธ๊ณ .
REF
Last updated