國際化(通常縮寫為 i18n)是指設計和準備軟體以輕鬆適應各種語言、地區和文化,而不需要對程式碼進行工程變更。接下來通常是在地化(通常縮寫為 l10n),其中涉及使國際化軟體適應特定的語言環境,包括翻譯文本、調整本地約定以及修改其他特定於語言環境的元素。
我們的目標是透過將核心邏輯與特定於語言環境的元素(如語言和文化約定)分開,使軟體足夠靈活以支援多種語言環境。
使用程式語言提供的 ResourceBundle 類別在普通 Java 程式中本地化文字訊息有點簡單。 ResourceBundle 類別可以輕鬆載入屬性檔案中定義的特定於區域設定的鍵值屬性。這些屬性檔稱為資源包.
在 Java 程式中本地化文字訊息的另一種方法是使用第三方程式庫。 i18n-resource-bundle 就是這類函式庫之一。該庫是前面討論的 ResourceBundle 的實作。
如果您使用 Maven,請在 pom.xml 中新增以下相依性
如果您更喜歡 Gradle,請使用它;
i8n-resource-bundle 提供了MessageSource接口,定義了多種解析訊息的方法。它有兩個實現,ResourceBundleMessageSource和ReloadableResourceBundleMessageSource。兩種實作都使用類似於 Java ResourceBundle 的指定基本名稱來存取資源包。 ResourceBundleMessageSource 依賴 Java 的 ResourceBundle 實作結合 MessageFormat 進行訊息解析,將訊息解析為不同語言環境的資源包。
與 ResourceBundleMessageSource 不同,ReloadableResourceBundleMessageSource 使用 Java 的 Properties 實例作為訊息的自訂資料結構,使用不同的策略載入它們,允許根據時間戳更改和特定字元編碼重新載入屬性文件,而無需重新啟動應用程式。
在本簡短指南中,我們學習了使用ResourceBundle和 i18n-resource-bundle 在 Java 應用程式中實現國際化 (i18n)。我們了解如何根據提供的區域設定名稱解析資源包,並看到了一個實際範例。
以上是Java 的國際化的詳細內容。更多資訊請關注PHP中文網其他相關文章!