ホームページ  >  記事  >  Java  >  SpringBoot がフロントエンドとバックエンドを分離して国際化を実装する方法

SpringBoot がフロントエンドとバックエンドを分離して国際化を実装する方法

王林
王林転載
2023-05-14 22:49:041659ブラウズ

はじめに

Springboot の国際化は、ユーザーがさまざまな言語環境でアプリケーションを構築するのに役立ち、アプリケーションがさまざまな言語や文化的背景のユーザーのニーズに効果的に適応できるようになります。

さらに、Springboot の国際化により、多言語アプリケーションの再利用とメンテナンスも容易になり、システム導入の時間コストとメンテナンス コストが削減されます。

Springboot 国際アプリケーションを実装するには、主に 3 つの手順があります。

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」と呼ばれる Bean を通じて実装されます。

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 国際アプリケーションを実装するには、主に 3 つの手順があります。

1. 国際プロパティ ファイルの設定: Springboot の国際化を実装するには、まず言語と地域情報を含む一連の国際プロパティ ファイルを準備する必要があります。

2. 国際化されたメッセージ リソースの登録: プロパティ ファイル内の言語と地域の情報を Springboot アプリケーションに登録し、デフォルト値を指定することで、多言語に拡張するときに関連するプロパティ リソースに迅速かつ効率的にアクセスできるようになります。 . .

3. 多言語バンドル ファイルの定義: 定義された国際化プロパティ ファイルをアプリケーションと結合して多言語バンドル ファイルを形成し、ユーザーが別の言語を選択したときにアプリケーションの言語バージョンを調整できるようにします。 。

以上がSpringBoot がフロントエンドとバックエンドを分離して国際化を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。