分類: iOS開發2014-10-11 19:44 3116人閱讀 評論(0) 收藏 舉報ios
ios應用國際化本地化xcodeiOS國際化終極教程xcode
應用程序國際化和本地化spa
本文來自:http://blog.csdn.net/yangbingbinga/article/details/39998673轉載請註明出處 .net
1.國際化.首先建立一個工程,在 Localizations裏面添加你須要支持的語言code
2.而後對要國際化的東西 如,故事板 右側的屬性 /inpector ,選擇本地化語言 Localization裏面勾選上視頻
那麼故事板上的控件都能支持國際化了blog
3.設置不一樣的語言環境下的應用顯示名稱,首先給 infoPlist.strings本地化教程
例如,在 infoPlist.strings (English)中設置 英語環境下顯示的名稱 : 圖片
CFBundleDisplayName = 「EnglishAppName」; 資源
在 infoPlist.strings (Simplified)中設置 中文環境下顯示的名稱 :
CFBundleDisplayName = 「中文程序名」;
4. 獲取本地設備的語言
NSUserDefaults * def = [NSUserDefaults standardUserDefaults];
NSArray * arr = [def objectForKey:@"AppleLanguages"];
NSString * l = [arr objectAtIndex:0];
NSLog(@"%@",l);
獲取當前使用語言
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog ( @"%@" , currentLanguage);
5. 給控件本地化
首先建立 Localizable.strings文件注意名稱不要亂改
而後對其屬性選擇本地化 Localization
而後給 Localizable.strings
中的英文和中文的文件分別寫上不一樣的 鍵值對
以下:
English -localizable.string寫上以下:
/*
Localizable.strings
aa
Created by ibokan on 14-10-11.
Copyright (c) 2014年 xx. All rights reserved.
*/
"string" = 「aaa";
"image" = "a.png」;
中文狀況下寫同樣的鍵同樣的,值不同的串便可
"string" = "啊啊啊";
"image" = "b.png」;
讀取本地化的字符串:
label.text = NSLocalizedString(@"string", nil);//nil是一個註釋,能夠不用寫
//UIImage * img = [UIImage imageNamed:NSLocalizedString(@"image", nil)];
注意:若是你的strings文件名字不是Localizable而是自定義的話,如wang.strings,那麼你就得使用NSLocalizedStringFromTable()來讀取本地化字符串:
NSLocalizedStringFromTable(@"welcome",@"wang", nil)
6.直接給 資源文件本地化: 如圖片,音頻,視頻等等
直接選擇一個圖片
這裏又分兩種方法,第一種和本地化字符串方法相似,把中英文圖片的名字分別存到中英文對應的strings文件,而後經過NSLocalizedString)來獲取圖片名稱,如:
Localizable.strings(english)文件中加入:
"BtnCancel"="BtnCancelEn.png";
Localizable.strings(chinese)文件中加入:
"BtnCancel"="BtnCancelCn.png";
而後在代碼中使用NSLocalizedString)來獲取圖片名稱:
UIImage *image=[UIImage imageNamed:NSLocalizedString(@"BtnCancel", nil)]];便可
CCSprite *btnCancel = [CCSprite spriteWithSpriteFrameName:NSLocalizedString(@"BtnCancel", nil)];
btnCancel.position=ccp(s.width/2,s.height/2-40);
[self addChild:btnCancel z:2 tag:104];
第二種就比較正規化了:點中你要本地化的圖片,如「icon.png」,而後XCode-> View-> Utilities -> File Inspector(也就是最右邊的屬性欄),在Localization中點「+」添加chinese (zh-Hans);在圖片左邊就會出現一個倒三角,點開就會出現(english)和(chinese)的2張圖,而且在項目文件夾中會出現en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版圖片,zh-Hans.lproj存放的是中文版圖片,中英文圖片名字同樣,咱們在文件夾中直接替換圖片就能夠了,最後使用時直接使用正常名字就好了,如:「icon.png」。
點開工程,能夠看到了 3個語言的 工程目錄:
而後在 en 和 zh-Hans目錄中替換同名的 圖片便可,重啓應用
7.本地化其餘文件
本地化其餘文件和本地化圖片第二種方法相似,先在Localization中添加語言,而後把對應版本拷貝到en.lproj和zh-Hans.lproj文件夾中,最後引用就好了。
8.其餘方法:
使用 Object ID給 他附上字符串,注意,若是在代碼中對同一個 Label也設置了 text那麼將會覆蓋以前設置的文本
複製 Object ID
在
在兩個 Main.string分別寫上:
"Qub-Cw-tR8.text" = 「中文 文本顯示在 label上」;
"Qub-Cw-tR8.text" = 「English Text」;
而後運行能夠看到,label的文本被自動的設置了 文本