1.在Main.storyboard 拉三個按鈕與一個Label
2.與ViewController.swift建立連接
import UIKit class ViewController: UIViewController { @IBOutlet weak var labMessage: UILabel! override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func btnEnglish(_ sender: UIButton) { UserDefaults.standard.set("Base", forKey: "lang") //儲存語系為基本 setMessage() } @IBAction func btnJapan(_ sender: UIButton) { UserDefaults.standard.set("ja", forKey: "lang") //儲存語系為日文 setMessage() } @IBAction func btnChinses(_ sender: UIButton) { UserDefaults.standard.set("zh-Hant", forKey: "lang") //儲存語系為繁體中文 setMessage() } func setMessage() { labMessage.text = "A Song of Ice and Fire".localized //使用擴展功能 localized } } extension String{ var localized: String { let lang = UserDefaults.standard.string(forKey: "lang") let bundle = Bundle(path: Bundle.main.path(forResource: lang, ofType: "lproj")!) return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "") } }3.建立Localizable.strings檔案
New File... -> 找到 String File -> 輸入Localizable.strings -> Create
建立完成後點選檔案->右邊的 ->再點選Localize...
4.回到PROJECT的Info 點選Localizations的 + 會出現所有語言, 這裡選擇Japanese(ja)與Chinses(zh-Hant), 括弧內為設定文字對應的縮寫
勾選建立的Localizable.strings就好
接著Localizable.strings會出現三個檔案
分別在 Localizable.strings(Base)輸入
"A Song of Ice and Fire" = "A Song of Ice and Fire";
Localizable.strings(Japanese)輸入
"A Song of Ice and Fire" = "氷と炎の歌";
Localizable.strings(Chinese(Traditional))輸入
"A Song of Ice and Fire" = "冰與火之歌";
檔案下載:
https://github.com/terryyamg/MultipleLanguageTest
參考連結:
https://stackoverflow.com/questions/25081757/whats-nslocalizedstring-equivalent-in-swift
https://medium.com/lean-localization/ios-localization-tutorial-938231f9f881