iOS Localization 多國語言教學

為了讓世界各地的使用者都能使用你的 App,支援多國語言 (Localization) 是必要的一步。Xcode 推出的 String Catalog (.xcstrings) 讓這個過程變得非常簡單。

建立 String Catalog

  1. File > New > File...
  2. 搜尋 String Catalog
  3. 命名為 Localizable.xcstrings (這是預設名稱,SwiftUI 會自動搜尋)。

使用方式

在 SwiftUI 中,所有的 Text("...") 甚至是 Button("..."),只要你傳入的是 String Literal,系統都會自動把它當作是一個 Localization Key。

Text("Hello") // Key 為 "Hello"
Text("歡迎回來,\(name)") // Key 包含參數

翻譯流程

  1. 建置 (Build) 專案。Xcode 會自動掃描所有的 String Literal 並加入到 Localizable.xcstrings 中。
  2. 打開 .xcstrings 檔案,你會看到所有掃描到的字串。
  3. 在 Inspector 中點擊 "+" 新增語言 (例如 Traditional Chinese)。
  4. 為每個 Key 填入對應的翻譯。

預覽不同語言

在 Preview 中測試多語系非常方便:

#Preview {
    ContentView()
        .environment(\.locale, .init(identifier: "zh-Hant")) // 強制預覽繁體中文
}

圖片與資源在地化

除了文字,你也可以為 Asset Catalog 中的圖片設定 Localize,讓不同語言顯示不同的圖片。

多國語言不僅是翻譯文字,還包含日期格式、貨幣單位的自動轉換,Swift 的 Foundation 框架已經幫我們處理好了大部分細節。