開發的移動應用更希望擷取更多使用者,走向世界,這就需要應用國際化,國際化其實就是多語言,系統會根據目前裝置的語言環境來識别 App 中使用中文還是英文。
1、建立一個名為 Localizable.strings 的資源檔案。

2、點選 Localizable.strings 檔案,在右側屬性選擇器中可以看到有個按鈕 Localize...。
3、點選 Localize... 按鈕,如果沒做過國際化處理,選項隻有 Base 和 English,選擇 English 點選 Localize 按鈕。
4、點選工程根目錄,并選擇 PROJECT,然後選擇 Info 頁籤,底部我們就看到了Localizations,點選 “+” 号選擇一門語言(比如 Chinese(Simplified))。這時看 Localizable.strings 檔案下有兩個檔案 Localizable.strings(English) 和 Localizable.strings(Chinese(Simplified))。
在國際化檔案中以鍵值的方式定義需要國際化的字元串。
5、在 Localizable.strings(English) 檔案中添加需要國際化的字元串的英文名稱。
6、在 Localizable.strings(Chinese(Simplified)) 檔案中添加需要國際化的字元串的中文名稱。
7、在需要使用國際化的地方使用 NSLocalizedString(key, comment) 調用名為 Localizable.strings 的檔案中定義的 Key 值。系統會根據目前裝置的語言環境來識别使用中文還是英文。
如果你的 strings 檔案名字不是 Localizable 而是自定義的話,如 qian.strings,那麼你就得使用 NSLocalizedStringFromTable() 來讀取本地化字元串。
5、在 Storyboard 檔案的 Localization 選項中選擇 English 和 Chinese(Simplified),并選擇 Interface Builder Storyboard 模式,去掉 Base。此時可看到 Main.storyboard 下有兩個檔案 Main.storyboard(Chinese(Simplified)) 和 Main.storyboard(English)。
6、在 Main.storyboard(Chinese(Simplified)) 檔案中設定 Storyboard 上控件的中文名稱。
7、在 Main.storyboard(English) 檔案中設定 Storyboard 上控件的英文名稱。
8、運作程式,系統會根據目前裝置的語言環境來識别使用中文還是英文。注意使用這種方式設定完國際化後,在 Storyboard 新添加的控件不會出現在國際化檔案中,建議最後進行國際化設定。
5、在 Storyboard 檔案的 Localization 選項中添加 English 和 Chinese(Simplified),并選擇 Localizable Strings 模式。此時可看到 Main.storyboard 下有三個檔案 Main.storyboard(Base)、Main.strings(Chinese(Simplified)) 和 Main.strings(English)。
6、在 Main.strings(Chinese(Simplified)) 檔案中設定 Storyboard 上控件的中文名稱。
7、在 Main.strings(English) 檔案中設定 Storyboard 上控件的英文名稱。
1、建立一個名為 InfoPlist.strings 的資源檔案。

2、點選 InfoPlist.strings 檔案,在右側屬性選擇器中可以看到有個按鈕 Localize...。
3、點選 Localize... 按鈕,如果沒做過國際化處理,選項隻有 Base 和 English,選擇 English 點選 Localize 按鈕,再像上面一樣添加上其他語言。如果做過國際化,再選中 Chinese(Simplified) 語言。
4、在 InfoPlist.strings(English) 檔案中添加應用的英文名稱。
5、在 InfoPlist.strings(Chinese(Simplified)) 檔案中添加應用的中文名稱。
6、運作程式,系統會根據目前裝置的語言環境來識别使用中文還是英文。
這裡又分兩種方法,第一種和國際化字元串方法類似,把中英文圖檔的名字分别存到中英文對應的 strings 檔案,然後通過 NSLocalizedString 來擷取圖檔名稱。
1、Localizable.strings(english) 檔案中加入:
2、Localizable.strings(chinese) 檔案中加入:
3、然後在代碼中使用 NSLocalizedString 來擷取圖檔名稱:
第二種就比較正規化了。
1、将圖檔檔案拖到項目中(不要放到 Assets.xcassets 中),點中你要國際化的圖檔,如 “icon.png”,在右側屬性選擇器中可以看到有個按鈕 Localize...。
2、點選 Localize... 按鈕,如果沒做過國際化處理,選項隻有 Base 和 English,選擇 English 點選 Localize 按鈕,再像上面一樣添加上其他語言。如果做過國際化,再選中 Chinese(Simplified) 語言。
3、在圖檔左邊就會出現一個倒三角,點開就會出現(english)和(chinese)的 2 張圖,并且在項目檔案夾中會出現 en.lproj 檔案和 zh-Hans.lproj 檔案;en.lproj 檔案存放的是英文版圖檔,zh-Hans.lproj 存放的是中文版圖檔,中英文圖檔名字一樣,我們在檔案夾中直接替換圖檔就可以了,最後使用時直接使用正常名字就行了,如:“icon.png”。
國際化其他檔案和國際化圖檔第二種方法類似,先在 Localization 中添加語言,然後把對應版本拷貝到 en.lproj 和 zh-Hans.lproj 檔案夾中,最後引用就行了。