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

WPF 應用程式全球化與當地語系化實作指南

     編輯:關於.NET

全球化 vs 當地語系化

當地語系化:為特定文化建立專屬資源(文字翻譯、圖片替換等)。
全球化:確保應用程式無需重新編譯即可被當地語系化,單一版本透過執行期資源選擇適應多文化。

WPF 底層的 ResourceManager 直接支援此模式。文化特性以「語言-區域」格式表示(如 en-US、zh-TW),ResourceManager.GetStream 可接收 CultureInfo 參數,預設取 Thread.CurrentThread.CurrentUICulture。

衛星組件搜尋順序

  1. 應用程式目錄下以文化名稱命名的子目錄(如 fr-CA),尋找 MyApp.resources.dll。
  2. 若無,退回語言中性目錄(fr)。
  3. 仍無則回落至主組件內嵌資源。

衛星組件僅包含差異資源,通用資源(如通用圖片)留在主組件,避免重複佔用空間。

XAML 當地語系化流程

XAML 編譯為 BAML 內嵌資源,ResourceManager 以 BAML 為最小顆粒度。Visual Studio 2005 尚無內建支援,需手動步驟:

  1. 專案檔加入 <UICulture>en-US</UICulture>,觸發產生預設文化衛星組件。
  2. 為 XAML 元素加入 x:Uid 標識(可用 msbuild /t:updateuid 自動生成,/t:checkuid 檢查重複)。
  3. 建置專案,產生預設文化衛星組件。
  4. 執行 LocBaml 解析 BAML 產生 CSV 骨架檔(需自行編譯 LocBaml 原始碼)。
  5. 編輯 CSV 中的 Value 欄位填入翻譯文字。
  6. 再次執行 LocBaml /generate 產生目標文化衛星組件(如 en-GB)。
  7. 將衛星組件置於對應文化子目錄,應用程式執行期自動載入。

CSV 欄位:BAML 名稱、資源鍵、當地語系化類別、可讀性、可修改性、註解、值。

當地語系化流程圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved