【轉】iOS多語言本地化(國際化)設定

來源:互聯網
上載者:User

標籤:

原文網址:http://www.jianshu.com/p/2b7743ae9c90

討論的iOS應用中的多語言設定,Ok 一般是兩種情況:

1.根據當前裝置語言自動切換顯示

2.在應用中可進行語言設定

至今,我個人做過的項目中有6個是涉及到多語言的,其中全部都是需要在應用中可進行設定。 其實也沒多大關係,我們這裡會首先說說根據當前裝置語言進行切換介面的顯示(這些都是網上能搜到的,我整理下給自己清晰點的步驟以便後續查看罷了)。而關於在應用在進行語言設定,其實就是擷取當前的語言環境並通過代碼變更,其他的操作是一致的。

先來說說幾個涉及到多語言本地化設定的:

1.本地化應用程式名稱

2.本地化字串(文字)

3.本地化圖片、素材

4.本地化StoryBoard(Xib)

!!重點重點,以上都是廢話:

這裡才是配置根據當前裝置語言自動切換顯示的步驟,不貼圖,不說明原因:

1.配置工程支援多語言

選中項目—>PROJECT(預設是選中TARGETS,切換下)—>Info—>Localizations—>設定多語言環境

2.國際化應用程式名稱

(1)建立InfoPlist.string,並進行Localization配置:

在項目中點擊New File-->Resource-->Strings File -->更名為InfoPlist-->點擊建立。

選中InfoPlist.strings —>在Xcode右側邊欄找到Localization—>在Localization中點“+”進行配置。(如沒有則點擊 XCode—>View—>Utilities—>File Inspector)

(2)添加屬性:

在對應InfoPlist.string檔案中輸入以下代碼:

CFBundleDisplayName ="多語言測試";

注意:CFBundleDisplayName加不加雙引號都行,"多語言測試"便是對應的應用程式名稱。

(3)編輯Info.plist:

開啟Info.plist,添加一個新的屬性Application has localized display name, 設定其類型為boolean,並將其value設定為YES即可

3.國際化文字

(1)建立Localizable.strings檔案(一定是這個名字,是否使用的方法不一樣)並進行進行Localization配置。

(2)在對應語言的Localizable.strings中添加key=value;字串(各個語言檔案中key要相同)

(3)在代碼中使用NSLocalizedString(<#key#>, <#comment#>)來讀取本地化字串。

注意:如果你的strings檔案名稱字不是Localizable而是自訂的話,如wang.strings,那麼你就得使用NSLocalizedStringFromTable(key, @"wang", nil)來讀取本地化字串,中間那個是@"wang"檔案名稱。

*多語言文本中也可包含可變內容:通過以下代碼擷取:

NSString *string = [NSString localizedStringWithFormat:NSLocalizedString(@"密碼錯誤%ld次,還可以輸入%ld次",nil), 2, 1];

4.國際化圖片

有兩種方式:

(1)在不同語言的Localizable.strings中指定不同的圖片名稱,通過NSLocalizedString()擷取不同的圖片名稱後進行顯示不同的圖片(這個就是通過國際化文字那個)

(2)參照國際化應用程式名稱和文字的方式給圖片標記兩種不同的語言顯示 (但將圖片放Images.xcassets中時時似乎沒有地方可以選擇國際化語言的)

5.國際化StoryBoard:(不建議)

在第1步配置工程多語言的時候就會提示包含的更改的檔案,其中就有StoryBoard,選中即可。這樣便會出現一個Base檔案和語言檔案。

但有一個問題是更改了SB中的控制項之後,語言套件中的內容不會對應改變,所以我們的操作是暫時不支援國際化SB。

 

以上部分參考:http://blog.csdn.net/wangqiuyun/article/details/7875442



文/cocoawmm(簡書作者)
原文連結:http://www.jianshu.com/p/2b7743ae9c90
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。 

【轉】iOS多語言本地化(國際化)設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.