[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
다국어 처리를 위한 Internationalization 구현 방법
Failed to convert value of type 'java.lang.String' to required type 'java.util.Locale 오류 문의
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.


답변 1
1
안녕하세요, 이도원입니다.
문의하신 작업은 AcceptHeaderLocaleResolver 클래스를 이용하시면 처리할 수 있습니다. 다음과 같은 LocaleResolver를 구현하신 다음,
public class AcceptHeaderResolver extends AcceptHeaderLocaleResolver {
List<Locale> LOCALES = Arrays.asList(new Locale("en"), new Locale("ar"));
@Override
public Locale resolveLocale(HttpServletRequest request) {
String headerLang = request.getHeader("Accept-Language");
return headerLang == null || headerLang.isEmpty()
? Locale.getDefault()
: Locale.lookup(Locale.LanguageRange.parse(headerLang), LOCALES);
}
}
컨트롤러에서는 @RequestHeader를 이용하여 Locale을 사용하지 마시고, 다음과 같이 HttpServletRequest를 이용하여 "Accept-Language" 값을 얻은 다음에, 정상적으로 처리되게 하실 수 있습니다.
@GetMapping(path = "/test-world-internationalized")
public String testWorldInternationalizedWithoutHeader(HttpServletRequest request) {
String acceptLanguage = request.getHeader("Accept-Language");
System.out.println(acceptLanguage);
Locale locale = resolver.resolveLocale(request);
return messageSource.getMessage("greeting.message", null, locale);
}

위와 같이 구현하시면, 크롬에서 요청 시 다음과 같이 Accept-Language가 전달된다 하더라도,
ko,en-US;q=0.9,en;q=0.8
AcceptHeaderResolver 클래스의 resolveLocale 메소드에서 해당 값을 Parsing하여 사용할 수 있습니다.
감사합니다.
JPA
0
65
1
jpa dependency를 추가하고 SecurityConfig클래스에서 오류가 납니다.
0
75
1
웹 브라우저 400 bad request
0
76
1
@Size는 되는데 @Past는 안 됩니다.
0
69
1
pdf 자료는 없나요?
0
81
2
locale 정보가 null 이면 무조건 messages_ko.properties이 호출 되는 문제
0
94
2
Swagger 강의, Unable to infer base url 이거 뜨시는 분들 도움되시라고
0
124
1
강의에서나온 화면 피피티
0
162
1
HelloWorldBean 관련 에러
0
189
2
Swagger API 3.x 오류..
0
223
1
java: variable message not initialized in the default constructor 에러는 어찌하면 좋을까요?
1
283
1
현재 GIT에 올리신 소스를 실행해봤습니다.
0
195
2
고양이 소리가 귀엽네요 !!
0
141
2
git에서 소스받고 실습중인데
0
120
1
post가 안되요
0
107
1
한국어 같은 경우 언어코드인 messages_ko.properties 로 생성하는게 더 좋지 않나요?
0
169
2
리턴타입으로서 EntityModel<User> 와 ResponseEntity질문
0
108
1
예외처리쪽 관련 질문있습니다.
0
162
2
엔티티가 바로 응답으로 나가도 되나요??
0
233
2
안녕하세여 Cannot invoke "co.kr.joneconsulting.resfulservice.repository.PostRepository.save(Object)" because "this.postRepository" is null
0
144
2
사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.
0
144
2
ApplictionContext 질문
0
198
2
롬북이 안먹히는것같아요
0
161
1
인텔리제이에서스프링부트 파일 실행하면
0
243
1





