IOS 應用程序的國際化

  1. 應用程序名稱的國際化

    • 案例: 微信、微博等案例
    • “微信”、”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> 這時, 直接切換模擬器(或真機)的語言(中文、英文)的時候, 應用程序名字會自動發生變化。

  2. storyboard 文件中, 控件的國際化(在模擬器上調試可能是有問題的)
    1> 佈局一個登錄界面
    2> 默認的文字都用中文
    3> 佈局好了以後, 選中該 storyboard 文件, 在右側的工具箱中, 選擇”文件審查器”, localization, 勾選中文、英文。
    4> 然後會出現多個 storyboard 文件, 在對應的文件中修改語言則可。
    • 注意, 這個在模擬器上運行有問題, 需要在真機上運行。

  3. 演示彈出的 UIAlertView 的國際化(Localizable.strings也依賴系統的語言)

    • 思路: 通過配置多個不同的.strings文件, 來指定在不同情況下的顯示不同的語言
      1> 創建一個名字爲Localizable.strings的文件
      2> 選中該文件, 在右側的”文件審查器”中, 點擊 Localize 按鈕, 勾選中文、英文。
      3> 在對應的中文、英文文件中, 添加一些需要國際化的鍵值對
      4> 在代碼中通過NSLocalizedString(@”key”, nil);的方式獲取對應的鍵值.這個方法內部會根據系統的語言, 去讀取對應的鍵值。
  4. 實現類似”新浪微博”、”微信”切換語言的效果(點擊切換語言後立刻切換, 無需設置手機的語言)

    • 思路:
      1> 自定義多個不同的.strings 文件
    • language_CN.strings
    • language_EN.strings

2> 通過下面的代碼手動加載對應的.strings 文件
NSLocalizedStringFromTable(<#key#>, @”language_CN”, nil);
NSLocalizedStringFromTable(<#key#>, @”language_EN”, nil);

3> 放兩個按鈕, 點擊中問按鈕, 讀取中文的strings 文件, 點擊英文讀取英文的 strings 文件, 然後當前使用的是哪種語言, 就把這種語言保存到”偏好設置中”, 下次 viewDidLoad 的時候直接讀取偏好設置中的語言配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章