首頁> Java> java教程> 主體

Java 的國際化

PHPz
發布: 2024-07-31 09:00:41
原創
469 人瀏覽過

Internationalisation in Java

國際化(通常縮寫為 i18n)是指設計和準備軟體以輕鬆適應各種語言、地區和文化,而不需要對程式碼進行工程變更。接下來通常是在地化(通常縮寫為 l10n),其中涉及使國際化軟體適應特定的語言環境,包括翻譯文本、調整本地約定以及修改其他特定於語言環境的元素。

我們的目標是透過將核心邏輯與特定於語言環境的元素(如語言和文化約定)分開,使軟體足夠靈活以支援多種語言環境。

資源包

使用程式語言提供的 ResourceBundle 類別在普通 Java 程式中本地化文字訊息有點簡單。 ResourceBundle 類別可以輕鬆載入屬性檔案中定義的特定於區域設定的鍵值屬性。這些屬性檔稱為資源包.

雷雷

使用 i8n 資源包

在 Java 程式中本地化文字訊息的另一種方法是使用第三方程式庫。 i18n-resource-bundle 就是這類函式庫之一。該庫是前面討論的 ResourceBundle 的實作。

依賴性

如果您使用 Maven,請在 pom.xml 中新增以下相依性

雷雷

如果您更喜歡 Gradle,請使用它;

雷雷

訊息來源

i8n-resource-bundle 提供了MessageSource接口,定義了多種解析訊息的方法。它有兩個實現,ResourceBundleMessageSourceReloadableResourceBundleMessageSource。兩種實作都使用類似於 Java ResourceBundle 的指定基本名稱來存取資源包。 ResourceBundleMessageSource 依賴 Java 的 ResourceBundle 實作結合 MessageFormat 進行訊息解析,將訊息解析為不同語言環境的資源包。

雷雷

ReloadableResourceBundleMessageSource

與 ResourceBundleMessageSource 不同,ReloadableResourceBundleMessageSource 使用 Java 的 Properties 實例作為訊息的自訂資料結構,使用不同的策略載入它們,允許根據時間戳更改和特定字元編碼重新載入屬性文件,而無需重新啟動應用程式。

雷雷

結論

在本簡短指南中,我們學習了使用ResourceBundle和 i18n-resource-bundle 在 Java 應用程式中實現國際化 (i18n)。我們了解如何根據提供的區域設定名稱解析資源包,並看到了一個實際範例。

參考

  • Java™ 教學課程 - 隔離特定於區域設定的資料
  • i18n-資源包
  • 原始碼:i18n-in-java

以上是Java 的國際化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!