在開發多語言應用程序時,Spring 的 MessageSource
是處理國際化(i18n)文本的核心組件。它允許我們根據用戶的 Locale
(區域設置) 顯示不同的消息。然而,很多時候我們的消息并不是靜態的,而是需要包含動態數據,比如用戶名、數量、文件名等。這時,我們就需要在獲取國際化消息時傳遞參數。本文將詳細介紹如何在 Spring MessageSource
中有效地使用參數。
核心概念:占位符與 java.text.MessageFormat
Spring 的消息參數化功能底層依賴于 Java 標準庫中的 java.text.MessageFormat
類。其基本思想是在消息字符串中使用占位符 {index}
,其中 index
是一個從 0 開始的整數,代表了傳遞給消息的參數數組中對應位置的參數。
第一步:在消息屬性文件中定義帶占位符的消息
首先,你需要在你的消息屬性文件(例如 messages.properties
, messages_zh_CN.properties
, messages_fr.properties
等)中定義包含占位符的消息。