スプリングメッセージ、国際化


Spring MVC 2編-バックエンドWeb開発におけるキーテクノロジーの理解とまとめ
Springは基本的なメッセージと国際化機能を提供します.概念と使い方を理解してください.

情報


アプリケーションの複数の画面で使用するフィールド名を変更する手順は、次のとおりです.数百の画面があれば?手記で仕事をするにはかなりの時間がかかります.
これらの情報を1つの場所で管理する機能をメッセージと呼びます.
使用方法
1. messages.propertiesメッセージ管理ファイルを生成します.
item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량
  • HTMLファイルごとにキー値を使用してデータをロードすればよい.
  • <label for="itemName" th:text="#{item.itemName}"></label>

    スプリングメッセージソースの設定


    springメッセージを使用するには、メッセージソースをspring beanに登録する必要がありますが、springブートは自動的に登録されます.
    Spring起動メッセージソースのデフォルト値はspringです.messages.basename=messages.
    したがって、以下の名前でファイルを作成すると、自動的にファイルが認識されます.
  • messages_en.properties
  • messages_ko.properties
  • messages.properties
  • Test
    @SpringBootTest
    public class MessageSourceTest {
    	@Autowired
    	MessageSource ms;
        
        	
    	@Test
    	void helloMessage() {
    		String result = ms.getMessage("hello", null, null);
    		assertThat(result).isEqualTo("안녕");
    	}
        	//메시지가 없는 경우, 기본 메시지 사용 가능
        	@Test
    	void notFoundMessageCodeDefaultMessage() {
    		String result = ms.getMessage("no_code", null, "기본 메시지", null);
    		assertThat(result).isEqualTo("기본 메시지");
    	}
        	// 매개변수 사용 가능 -> hello.name=안녕 {0}
       	 @Test
    	void argumentMessage() {
    		String result = ms.getMessage("hello.name", new Object[]{"Spring"}, null);
    		assertThat(result).isEqualTo("안녕 Spring");
    	}
    }
    
    

    Webアプリケーションへのメッセージの適用


    Thymeleafへのメッセージの適用
  • メッセージ式#{...}利用
  • 以降変更が必要な場合は、メールを送信してください.propertiesファイルを変更するだけでいいです.
  • 国際化


    各国がメッセージファイル(message.properties)を管理し、サービスすると、国際化が可能になります.
    国別メッセージ・ファイルの作成
  • messages_en.propertis
  • messages_ko.propertis
  • サーバは、クライアントがどの国/地域からアクセスしているかをどのように知っていますか?
    1.HTTP Accept-languageヘッダ値の使用
    2.ユーザーが自分の言語を選択することを処理する

    Webアプリケーションへの国際化の適用


    accept-Language
    クライアントがサーバに要求するHTTP要求ヘッダには、クライアントが望む言語情報が含まれている.
  • Spring言語を選択するにはLocle情報を理解する必要があります.Springは言語を選択するときにAccept-Languageヘッダーの値をデフォルトで使用します.
  • スプリングは、LocaleResolverというインタフェースを提供し、LocaleResolverの選択方法を変更するために使用され、基本的にはAcceptal-Languageを使用したAcceptaHeaderLocaleResolverが使用される.