>  기사  >  Java  >  SpringBoot가 프런트엔드와 백엔드 분리를 통해 국제화를 구현하는 방법

SpringBoot가 프런트엔드와 백엔드 분리를 통해 국제화를 구현하는 방법

王林
王林앞으로
2023-05-14 22:49:041654검색

머리말

Springboot 국제화는 사용자가 다양한 언어 환경에서 애플리케이션을 구축하는 데 도움이 되므로 애플리케이션은 다양한 언어 및 문화적 배경의 사용자 요구에 효과적으로 적응할 수 있습니다.

또한 Springboot 국제화는 다국어 애플리케이션의 재사용 및 유지 관리를 용이하게 하여 시스템 배포에 드는 시간 비용과 유지 관리 비용을 줄일 수 있습니다.

Springboot 국제 애플리케이션을 구현하려면 세 가지 주요 단계가 있습니다.

1. 국제 속성 파일 설정

국제 리소스 파일을 정의하고, 속성 형식 파일을 사용하고, 다양한 다국어 텍스트 리소스를 여러 파일에 넣고, zh_CN.properties와 같은 [로케일] + [메시지] 메서드를 사용하여 각 파일의 이름을 지정합니다. , en_US.properties 등

SpringBoot가 프런트엔드와 백엔드 분리를 통해 국제화를 구현하는 방법

message.properties 파일 콘텐츠는 비어 있을 수 있습니다.

message.en_US.properties 콘텐츠 예시:

40001=Hello

message.zh_CN.properties 콘텐츠 예시:

40001=Hello

2 파서 및 인터셉터를 생성하세요

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import java.util.Locale;

@Configuration
public class LocaleConfig {

	@Bean
	public SessionLocaleResolver localeResolver() {
		SessionLocaleResolver localeResolver = new SessionLocaleResolver();
		localeResolver.setDefaultLocale(Locale.CHINA);
		return localeResolver;
	}
	
	@Bean
	public WebMvcConfigurer localeInterceptor() {
		return new WebMvcConfigurer() {
			@Override
			public void addInterceptors(InterceptorRegistry registry) {
				LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
				localeInterceptor.setParamName("lang");
				registry.addInterceptor(localeInterceptor);
			}
		};
	}
}

3. . 다음을 추가하세요. 시작 구성 파일 설정

application.properties

#i18n
spring.messages.basename=i18n.messages
spring.messages.cache-duration=3600
spring.messages.encoding=UTF-8

application.yml

spring: 
  messages:
    basename: i18n/messages

4에 다음 콘텐츠를 추가하세요. 컨트롤러 예제

Springboot의 국제화는 "messageSource"라는 빈을 통해 구현됩니다.

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestControler {

	@Autowired
	private MessageSource messageSource;
	
	@GetMapping("/hello")
	public Map<Object, Object> test() {
		Map<Object, Object> result = new HashMap<Object, Object>();
		result.put("code", 40001);
		result.put("msg", messageSource.getMessage("40001", null, LocaleContextHolder.getLocale()));
		return result;
	}

}

5. 요약

Springboot 국제화는 사용자가 다양한 언어 환경에서 애플리케이션을 구축하는 데 도움이 되므로 애플리케이션은 다양한 언어 및 문화적 배경의 사용자 요구에 효과적으로 적응할 수 있습니다.

또한 Springboot 국제화는 다국어 애플리케이션의 재사용 및 유지 관리를 용이하게 하여 시스템 배포에 드는 시간 비용과 유지 관리 비용을 줄일 수 있습니다. Springboot 국제 애플리케이션을 구현하려면 세 가지 주요 단계가 있습니다.

1. 국제 속성 파일 설정: Springboot 국제화를 구현하려면 먼저 언어 및 지역 정보를 포함한 일련의 국제 속성 파일을 준비해야 합니다.

2. 국제화된 메시지 리소스 등록: 속성 파일의 언어 및 지역 정보를 Springboot 애플리케이션에 등록하고, 여러 언어로 확장할 때 관련 속성 리소스에 빠르고 효율적으로 액세스할 수 있도록 기본값을 지정합니다.

3. 다중 언어 번들 파일 정의: 정의된 국제화 속성 파일을 애플리케이션과 결합하여 사용자가 다른 언어를 선택할 때 애플리케이션 언어 버전을 조정할 수 있도록 다중 언어 번들 파일을 구성합니다.

위 내용은 SpringBoot가 프런트엔드와 백엔드 분리를 통해 국제화를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제