首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

實現 Java 企業級應用多語言支援:IGT 外掛實戰指南

     編輯:Java 相關知識

前言與背景

軟體全球化是電子商務成功關鍵。IBM 要求產品符合全球化標準,開發者需處理多語言資料顯示、日誌記錄。Eclipse 3.0 內建「Externalize String」外掛可提取字串、生成屬性檔,但無法應對複雜 B/S 環境下的客戶端語言分離處理。IBM Globalization Tool (IGT) 在此基礎上增強,提供「處理客戶端地域資訊、響應不同用戶請求、建立多語言日誌」的中介層,透過自動生成的「XX Resources」集合類與「Resource Entry」物件,實現單一服務實例根據客戶端位置動態顯示多語言資料。

環境準備

元件版本
Eclipse IDE3.0/3.1
IGT1.0
Java SDK1.4.1/1.4.2
Tomcat5.0.16

安裝:將 IGT 解壓至 Eclipse plugins 目錄,重啟 Eclipse 並加 -clean 參數。工具列將出現 IGT 選單與圖示。

案例一:C/S 應用全球化

場景

Socket 伺服器響應來自 US、China、Japan、France、German 五地客戶端的登入/增刪改/登出請求,需依客戶端語言回應、依伺服器設定語言記錄日誌。原始程式僅輸出英文。

IGT 全球化向導操作

  1. 開啟 SocketServer.java,透過 IGT 選單/圖示/右鍵啟動向導。
  2. 資源配置:指定 Resource Entry 類與 Resource Loader 類存放包(如 nls)。
  3. 字串處理:IGT 自動提取硬編碼字串,開發者勾選處理方式——toString() 用於客戶端顯示,toLoggingString() 用於伺服器日誌。


  4. 確認生成內容:替換原始字串為 Resource Entry 物件、生成屬性檔/Entry/Loader 類。

程式碼調整與資源檔建立

  • 在 SocketServer.java 添加 setLocale() 方法,依客戶端傳入字串設定 ResourceLoader.setActiveLocale()(客戶端語言)與 setLoggingLocale()(伺服器日誌語言)。
  • 於 performAction() 登入處理前呼叫 setLocale(clientLocale);main() 中設定伺服器日誌語言(如 Locale.JAPAN)。
  • 複製預設 SocketServer.properties 為五語言版本(_en_US, _zh_CN, _ja_JP, _de, _fr_FR),內容以語言代碼標註(實際專案應用 native2ascii 轉 Unicode)。

執行結果驗證

客戶端收到對應語言回應(如 ########[zh_CN]),伺服器日誌統一為日文(########[ja_JP]),實現雙語言獨立控制。

案例二:B/S 應用全球化

Web 應用部署於 Tomcat,業務邏輯集中於 StoreActionBean.java。IGT 處理流程同案例一,重點配置瀏覽器語言(_clientLocale)與伺服器日誌語言(_serverLocale)。測試修改瀏覽器語言優先順序(德文/中文),回應訊息自動切換,伺服器日誌保持中文環境。




案例三:RMI 應用全球化

對 RMIObjectImpl.java 應用 IGT,構造函數設定 setLoggingLocale(Locale.getDefault()),setClientLocale() 中設定 setActiveLocale()。生成五語言屬性檔。測試顯示客戶端回應依語言切換(####[zh_CN]####, ####[de]####),伺服器日誌記錄客戶端語言與操作。

結語

IGT 讓 C/S、B/S、RMI 等多類型企業級應用國際化變得簡單高效,並提供增刪改字串的便利管理功能。歡迎至 AlphaWorks 論壇 交流建議。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved