iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
Mobile Development

從零開始學習 iOS系列 第 24

從零開始學習 iOS Day23 - 多國語系

  • 分享至 

  • xImage
  •  

在前幾天的內容中,我們讓 App 能發送通知、儲存資料、呼叫 API。

但如果 App 要面向國際使用者,「多國語系(Localization)」就是不可或缺的功能。

今天將介紹:

  1. 建立多國語系檔案
  2. 在 SwiftUI 中使用多語系文字
  3. 確認語系顯示效果

建立多國語系設定

1. 在 Xcode 中新增語系

  1. 開啟你的 Xcode 專案。
  2. 點選左側 Project Navigator 最上層的專案名稱。
  3. 在中間的設定頁中,選擇 Project → Info → Localizations
  4. 點擊「+」按鈕,新增想要支援的語言(例如:Chinese (Traditional)English)。

這樣就完成語系設定,Xcode 會幫你建立對應的語系資料夾(如 zh-Hant.lprojen.lproj)。

https://github.com/jian-fu-hung/ithelp-2025/blob/main/image/Day23/%E6%88%AA%E5%9C%96%202025-10-08%20%E5%87%8C%E6%99%A81.08.22.png?raw=true

2. 建立 Localizable.strings

  1. 在專案內新增一個檔案:File → New → File → Strings File
  2. 檔名輸入:Localizable.strings
  3. 建立後選擇該檔案 → 在右側 File Inspector 中點擊「Localize…」
  4. 選擇主要語言(例如 English)。
  5. 接著在 Localizations 區域勾選其他語言(例如 Chinese)。

Xcode 就會自動產生:

en.lproj/Localizable.strings
zh-Hant.lproj/Localizable.strings

https://github.com/jian-fu-hung/ithelp-2025/blob/main/image/Day23/%E6%88%AA%E5%9C%96%202025-10-08%20%E5%87%8C%E6%99%A81.11.06.png?raw=true

3. 填寫文字內容

在各語系檔案中,輸入對應文字:

en.lproj/Localizable.strings

"hello_message" = "Hello!";
"app_title" = "ITHelp Day23 APP";
"button_confirm" = "Confirm";

zh-Hant.lproj/Localizable.strings

"hello_message" = "你好!";
"app_title" = "ITHelp 第23天 APP";
"button_confirm" = "確認";

4. 在 SwiftUI 中使用多國語系文字

在 SwiftUI 中,只需要在 Text 或其他支援 LocalizedStringKey 的元件中

直接放入 key 即可自動對應語系。

import SwiftUI

struct LocalizationExampleView: View {
    var body: some View {
        VStack(spacing: 16) {
            Text("hello_message")
                .font(.title)

            Text("app_title")
                .font(.headline)

            Button("button_confirm") {
                print("Button tapped!")
            }
        }
        .padding()
    }
}

SwiftUI 會自動從當前系統語系載入對應的 Localizable.strings

5. 預覽多國語系效果(Preview)

SwiftUI Preview 也能直接切換語系:

#Preview {
    ContentView().environment(\.locale, Locale(identifier: "zh_Hant"))
}

#Preview {
    ContentView().environment(\.locale, Locale(identifier: "en"))
}

這樣就能在 Xcode 預覽不同語言顯示效果。


今日小結

今天我們學會了:

  • 如何在 Xcode 新增語系設定
  • 建立多語系字串檔 Localizable.strings
  • 在 SwiftUI 中使用 Text("key") 自動對應語系
  • 在 Preview 中測試不同語言

到這裡,App 已經能根據系統語言自動顯示對應文字,讓使用者體驗更加貼近在地化。


上一篇
從零開始學習 iOS Day22 - Push Notification II
系列文
從零開始學習 iOS24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言