IOS 應用程式國際化

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   檔案   io   

一、什麼是應用程式的國際化?

       根據目前使用者當前行動裝置的語言自動將我們的app切換對應語言。

       對於個人開發人員而言國外市場比國內市場更加有價值些,畢竟國外的著作權意識,付費理念較好些。

二、怎麼做?

       1.本地化應用程式名稱

       (1)應用程式名稱的設定在 InfoPlist.strings檔案中,而本地化的InofPlist.strings(simple Chinese)等在Xcode 5

               之後只能在Project ->Info-> Localizations 中點擊加號添加即可。操作如




(2)點擊“+”號 選擇所要使用的語言選擇Chinese 後

         在InfoPlish.strings(english)檔案中加入:

         CFBundleDisplayName ="Program";  

         同理在InfoPlish.strings(chinese)檔案中加入:

         CFBundleDisplayName ="應用程式"; 
         其中“應用程式”為中文名稱,“Program”為英文名稱。

         注意:CFBundleDisplayName加不加雙引號都行,這和本地化字串有些不同

(3)編輯Info.plist,添加一個新的屬性Application has localized display name,

         設定其類型為boolean,並將其value設定為YES即可


       2.本地化字串

        (1)點擊“new file”然後在快顯視窗左側選擇IOS的resource項,在右側就可以看到“String File”的表徵圖。

                 建立這個檔案,命名為“Localizable”(一定是這個檔案名稱否則後面調用會有一些區別)就產生一個

                 Localizable.strings檔案;

       (2)設定Localizable.strings檔案的本地化屬性,在完成後選中該檔案,在屬性選取器中選擇Show the File Inspector

                 可以看到多了個按鈕,如


                注意:當你在本地化應用程式名稱中如果添加上中文,在本地化字串也是沒有的中文的。

               在添加中文後Localizable.strings 裡自動會增加一個Localizable.strings(chinese)檔案

      (3)在Localizable.strings(english)檔案中加入:

                     "welcome"="Click on the screen to continue..."; 
               同理在Localizable.strings(chinese)檔案中加入:
                     "welcome"="點擊螢幕繼續..."; 

       3.本地化StoryBoard、Xib

         本地化StoryBoard、Xib 和 本地化字串類似,選中檔案添加Localization檔案

         分別在不同的檔案做不同的處理。


最後解釋NSbundle下幾個方法:

#define NSLocalizedString(key, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \
        [bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \
        [bundle localizedStringForKey:(key) value:(val) table:(tbl)]

(key, tbl, bundle, val, comment)

1.key 所使用的字串對應的key

2.tbl 所使用的字串所在的string檔案名稱。 ex:abc.strings的話 就輸入abc

3.bundle 資源strings檔案所在的檔案目錄。

4.val 預設字元。

5.comment 注釋


參考來源:

http://blog.csdn.net/a_ss_a/article/details/37996265

http://www.iliunian.com/2362.html

http://poolo.iteye.com/blog/1983753

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.