iOS Localization 多國語言教學
為了讓世界各地的使用者都能使用你的 App,支援多國語言 (Localization) 是必要的一步。Xcode 推出的 String Catalog (.xcstrings) 讓這個過程變得非常簡單。
建立 String Catalog
- File > New > File...
- 搜尋 String Catalog。
- 命名為
Localizable.xcstrings(這是預設名稱,SwiftUI 會自動搜尋)。
使用方式
在 SwiftUI 中,所有的 Text("...") 甚至是 Button("..."),只要你傳入的是 String Literal,系統都會自動把它當作是一個 Localization Key。
Text("Hello") // Key 為 "Hello"
Text("歡迎回來,\(name)") // Key 包含參數
翻譯流程
- 建置 (Build) 專案。Xcode 會自動掃描所有的 String Literal 並加入到
Localizable.xcstrings中。 - 打開
.xcstrings檔案,你會看到所有掃描到的字串。 - 在 Inspector 中點擊 "+" 新增語言 (例如 Traditional Chinese)。
- 為每個 Key 填入對應的翻譯。
預覽不同語言
在 Preview 中測試多語系非常方便:
#Preview {
ContentView()
.environment(\.locale, .init(identifier: "zh-Hant")) // 強制預覽繁體中文
}
圖片與資源在地化
除了文字,你也可以為 Asset Catalog 中的圖片設定 Localize,讓不同語言顯示不同的圖片。
多國語言不僅是翻譯文字,還包含日期格式、貨幣單位的自動轉換,Swift 的 Foundation 框架已經幫我們處理好了大部分細節。