์๋ก
์คํ๋ง ํ์ต ์ค ๋ค๊ตญ์ด ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ๊ตญ์ ํ(Internationalization) ์ฒ๋ฆฌ๋ฅผ ํ๋ค๊ฐ ์ด์ํ๊ฒ ํ๊ธ๋ง ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋์ง ์์์ต๋๋ค. ์๋์ ๊ฐ์ด ์ ์์ ์ผ๋ก Bean ๋ฑ๋ก๋ ํด์ฃผ์๊ณ , Controller, yml ์ค์ , message ๋ฒ๋ค๊น์ง ์๋ฒฝํ๊ฒ ๊ตฌ์ฑํ๋๋ฐ๋ ์ค์ง ํ๊ธ ๋ถ๋ถ๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
main
@SpringBootApplication
public class ApiPracticeApplication {
public static void main(String[] args) {
SpringApplication.run(ApiPracticeApplication.class, args);
}
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.KOREA);
return localeResolver;
}
}
Controller
@GetMapping("/hello-world-internationalized")
public String helloWorldInternationalized(@RequestHeader(name = "Accept-Language", required = false) Locale locale) {
log.info("Accept-Language : {}", locale);
return messageSource.getMessage("greeting.message", null, locale);
}
application.yml
spring:
messages:
basename: messages
message Bundle
// ํ์ผ ๊ฐ๊ฐ
greeting.message=์๋
ํ์ธ์
greeting.message=Hello
greeting.message=Bonjour
ํด๋น ๋ฌธ์ ๋ Intellij์ ๊ฐ๋จํ encoding ์ค์ ์ ํตํด ํด๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
mac ๊ธฐ์ค์ผ๋ก Preferences -> Editor -> File Encodings ๋ถ๋ถ์ ์ ๊ทผํ์๋ฉด ์์ ๊ฐ์ด ์ฒดํฌ ๋ฐ์ค๊ฐ ํ๋ ค์๊ณ ISO-8859-1๊ฐ ์ค์ ๋์ด ์์ํ ๋ฐ ์ด๊ฒ ํ๊ธ์ ์ง์ํ์ง ์์์ ํ๊ธ ๋ฐ์ดํฐ ์ถ๋ ฅ ์ ํ๊ธ์ด ๊นจ์ง๊ฒ ๋๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด UTF-8๋ก ๋ฐ๊พธ๊ณ ์ฒดํฌ๋ฐ์ค๋ฅผ ํ์ฑํ ์์ผ์ค์๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ properties ํ์ผ์ ์ ์ฅ์ UTF-8๋ก encodingํ ์ ์๊ฒ ๋์ด ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
'BackEnd๐ฑ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] @Valid, @ControllerAdvice, @Exception์ ์ด์ฉํ ๋ฐ์ดํฐ ๊ฒ์ฆ ๋ฐ ์ฒ๋ฆฌ (0) | 2022.05.20 |
---|---|
[Spring] nested exception is java.lang.NullPointerException (0) | 2022.05.15 |
[Spring] ๊ฐ์ฒด๋ณต์ฌ BeanUtils.copyProperties (0) | 2022.05.15 |
[Spring] DAO์ DTO์ ์ฐจ์ด ๊ทธ๋ฆฌ๊ณ VO (0) | 2022.04.14 |
[Spring] @NoArgsConstructor, @RequiredArgsConstructor, @RequiredArgsConstructor (0) | 2022.03.30 |
[Spring] @RequestParam, @RequestBody, @ModelAttribute์ ์ฐจ์ด (1) | 2022.03.28 |
๋๊ธ