應用程序名稱的國際化
- 案例: 微信、微博等案例
- “微信”、”WeChat”
“微博”、”Weibo”
演示步驟:
1> 選中項目, 添加對中文、英文的支持。選中項目在Localization下選擇Language。
2> 在 info.plist 中添加一個Bundle Display Name 的項, 然後查看對應的原生的鍵的名稱.
3> 在 Supporting Files 下面添加一個 InfoPlist.strings 的文件
4> 選中 InfoPlist.strings, 點擊右側的 Localize 按鈕, 然後點擊 Localize
5> 然後勾選 English、Chinese, 在 InfoPlist.strings 下會出現多個文件。
6> 在每個文件中編寫對應的鍵值對, 如下:
English:
“CFBundleDisplayName” = “WeChat”;
Chinese:
“CFBundleDisplayName” = “微信”;
7> 這時, 直接切換模擬器(或真機)的語言(中文、英文)的時候, 應用程序名字會自動發生變化。
storyboard 文件中, 控件的國際化(在模擬器上調試可能是有問題的)
1> 佈局一個登錄界面
2> 默認的文字都用中文
3> 佈局好了以後, 選中該 storyboard 文件, 在右側的工具箱中, 選擇”文件審查器”, localization, 勾選中文、英文。
4> 然後會出現多個 storyboard 文件, 在對應的文件中修改語言則可。
• 注意, 這個在模擬器上運行有問題, 需要在真機上運行。演示彈出的 UIAlertView 的國際化(Localizable.strings也依賴系統的語言)
- 思路: 通過配置多個不同的.strings文件, 來指定在不同情況下的顯示不同的語言
1> 創建一個名字爲Localizable.strings的文件
2> 選中該文件, 在右側的”文件審查器”中, 點擊 Localize 按鈕, 勾選中文、英文。
3> 在對應的中文、英文文件中, 添加一些需要國際化的鍵值對
4> 在代碼中通過NSLocalizedString(@”key”, nil);的方式獲取對應的鍵值.這個方法內部會根據系統的語言, 去讀取對應的鍵值。
- 思路: 通過配置多個不同的.strings文件, 來指定在不同情況下的顯示不同的語言
實現類似”新浪微博”、”微信”切換語言的效果(點擊切換語言後立刻切換, 無需設置手機的語言)
- 思路:
1> 自定義多個不同的.strings 文件 - language_CN.strings
- language_EN.strings
- 思路:
2> 通過下面的代碼手動加載對應的.strings 文件
NSLocalizedStringFromTable(<#key#>, @”language_CN”, nil);
NSLocalizedStringFromTable(<#key#>, @”language_EN”, nil);
3> 放兩個按鈕, 點擊中問按鈕, 讀取中文的strings 文件, 點擊英文讀取英文的 strings 文件, 然後當前使用的是哪種語言, 就把這種語言保存到”偏好設置中”, 下次 viewDidLoad 的時候直接讀取偏好設置中的語言配置。