iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Mobile Development

ios 的小小實驗室 2 !!系列 第 10

Localization 1 多國語系 - 元件 (Localizable.strings)

  • 分享至 

  • xImage
  •  

為了給多個國家的使用者使用,大部份 App 都會有支援多國語系,使 App 根據語言設定,進而顯示不同的文本

多國語系的實作可分為以下兩種

  1. 依據使用者裝置所設定的語系
  2. 手動切換來調整 App 所要顯示的語系

在 iOS 環境中的多國語系會依檔名來區分

  1. 元件 (Localizable.strings)
  2. App 的名稱、Info.plist (InfoPlist.strings)
  3. 圖片

今天會先介紹「依據使用者裝置所設定的語系」顯示「元件 (Localizable.strings)」所要的語系

  1. 設定該專案支援 繁體中文 的語系
    LocalizationDemo → PROJECT → Info → Localizations → 「+」 → Chinese, Traditional(zh-Hant)

    按 Finish

  2. 新增繁體中文的多國語系檔
    在資料夾上點選右鍵 → New File

    新增 Strings File

    命名

  3. 設定 Localizable.strings 所支援的多國語系
    點擊 Localizable.strings → show the file inspector → 點擊 Localize → 選擇要支援的其中一種語系即可

  4. 勾選其他未被勾選的語系
    將未被勾選的打勾

    勾選後,展開左側的 Localizable.strings,在左方檔案夾就會多出 繁體中文檔

    這時會看到有兩個多國語系檔,分別是英文、繁體中文。

  5. 在英文、繁體中文的多國語文件下新增程式碼
    以 key、value 的型式,並記得在結尾加入 “;” 來區隔每組的多國語。

    英文檔:

    中文檔:

  6. 將多國語系套用在現有的 label 上
    在將多國套用在 label 前,為了方便起見,可以寫一個 function 方便呼叫

    /// 簡便翻譯
    /// - Parameters:
    ///   - key: 在 LocalizableStrings 裡面定義的 Key
    /// - Returns: 在 LocalizableStrings 裡面定義的 Value
    func transalte(LocalizedString key: String) -> String {
    	// 設定多國語系,填入key值
    	return NSLocalizedString(key, comment: "")
    }
    

    將多國語系套用在現有的 label 上

大功告成!


GitHub - LocalizationLabelDemo


明天將會介紹「依據使用者裝置所設定的語系」顯示「App Icon 的名稱 (InfoPlist.strings)」所要的語系


上一篇
Xcode 13.1 搭配 ios 16 所遇到的情況
下一篇
Localization 2 多國語系 - App Icon 的名稱 (InfoPlist.strings)
系列文
ios 的小小實驗室 2 !!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言