標籤: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