iOS開發-Xcode6應用程序國際化本地化

 

[置頂] iOS開發-Xcode6應用程序國際化本地化 

分類: iOS開發2014-10-11 19:44 3116人閱讀 評論(0) 收藏 舉報ios

ios應用國際化本地化xcodeiOS國際化終極教程xcode

應用程序國際化和本地化spa

  1. 本文來自:http://blog.csdn.net/yangbingbinga/article/details/39998673轉載請註明出處  .net


  1.國際化.首先建立一個工程,在  Localizations裏面添加你須要支持的語言code


5EE9F9E7-E72C-49CB-8BA9-A2F8E0B6D5FD.png

2.而後對要國際化的東西  如,故事板 右側的屬性 /inpector  ,選擇本地化語言  Localization裏面勾選上視頻

那麼故事板上的控件都能支持國際化了blog

2EC836CE-7DB3-47C0-B36F-15ED122038BC.png                  F3BCEA2A-B814-49DC-A45B-4727481FBB64.png

3.設置不一樣的語言環境下的應用顯示名稱,首先給 infoPlist.strings本地化教程


D0C18B40-6A1F-405C-AAC8-6F41F30B58EF.png                   6B02EA75-31DC-4D91-9290-29B0DB5E69AB.png

  1. 例如,在 infoPlist.strings  (English)中設置  英語環境下顯示的名稱  :  圖片

  2.   

  3. CFBundleDisplayName = 「EnglishAppName」;  資源

  4.   

  5. 在 infoPlist.strings  (Simplified)中設置 中文環境下顯示的名稱  :  

  6.   

  7. CFBundleDisplayName = 「中文程序名」;  

  8.   

  9. 4. 獲取本地設備的語言  

  10.   

  11.  NSUserDefaults * def = [NSUserDefaults standardUserDefaults];  

  12.     NSArray * arr = [def objectForKey:@"AppleLanguages"];  

  13.     NSString * l = [arr objectAtIndex:0];  

  14.     NSLog(@"%@",l);  

  15. 獲取當前使用語言  

  16. NSArray *languages = [NSLocale preferredLanguages];  

  17. NSString *currentLanguage = [languages objectAtIndex:0];  

  18. NSLog ( @"%@" , currentLanguage);  


5. 給控件本地化

首先建立  Localizable.strings文件注意名稱不要亂改

A41E08F4-E89A-4547-B211-8A87031DA81F.png

而後對其屬性選擇本地化 Localization

B2A57787-6EAF-4641-BF07-2E3A0B3976B7.png

  1. 而後給   Localizable.strings  

  2.   

  3. 中的英文和中文的文件分別寫上不一樣的  鍵值對  

  4.   

  5. 以下:  

  6. English -localizable.string寫上以下:  

  7. /*  

  8.   Localizable.strings 

  9.   aa 

  10.  

  11. Created by ibokan on 14-10-11. 

  12.   Copyright (c) 2014年 xx. All rights reserved. 

  13. */  

  14. "string"  = 「aaa";  

  15. "image" = "a.png」;  

  16.   

  17. 中文狀況下寫同樣的鍵同樣的,值不同的串便可  

  18.   

  19. "string" = "啊啊啊";  

  20. "image" = "b.png」;  

  21.   

  22.   

  23. 讀取本地化的字符串:  

  24.  label.text = NSLocalizedString(@"string", nil);//nil是一個註釋,能夠不用寫  

  25. //UIImage * img = [UIImage imageNamed:NSLocalizedString(@"image", nil)];  

  26. 注意:若是你的strings文件名字不是Localizable而是自定義的話,如wang.strings,那麼你就得使用NSLocalizedStringFromTable()來讀取本地化字符串:  

  27.   

  28. NSLocalizedStringFromTable(@"welcome",@"wang", nil)    

  29.   

  30. 6.直接給 資源文件本地化: 如圖片,音頻,視頻等等    

  31. 直接選擇一個圖片  

  32. 這裏又分兩種方法,第一種和本地化字符串方法相似,把中英文圖片的名字分別存到中英文對應的strings文件,而後經過NSLocalizedString)來獲取圖片名稱,如:  

  33. Localizable.strings(english)文件中加入:  

  34.   

  35. "BtnCancel"="BtnCancelEn.png";    

  36. Localizable.strings(chinese)文件中加入:  

  37. "BtnCancel"="BtnCancelCn.png";    

  38. 而後在代碼中使用NSLocalizedString)來獲取圖片名稱:  

  39. UIImage *image=[UIImage imageNamed:NSLocalizedString(@"BtnCancel", nil)]];便可  

  40.   

  41. CCSprite *btnCancel = [CCSprite spriteWithSpriteFrameName:NSLocalizedString(@"BtnCancel", nil)];    

  42. btnCancel.position=ccp(s.width/2,s.height/2-40);    

  43. [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」。


F7699BCB-4380-43B9-A100-7E2E52575406.png

點開工程,能夠看到了 3個語言的 工程目錄:

1453F2FD-23CD-4810-835C-0B4787A1F3D0.png

而後在  en 和 zh-Hans目錄中替換同名的  圖片便可,重啓應用

56D94743-FA30-449C-92E9-D83CFCB4AFF4.png

7.本地化其餘文件


本地化其餘文件和本地化圖片第二種方法相似,先在Localization中添加語言,而後把對應版本拷貝到en.lproj和zh-Hans.lproj文件夾中,最後引用就好了。

8.其餘方法:

使用  Object ID給 他附上字符串,注意,若是在代碼中對同一個  Label也設置了 text那麼將會覆蓋以前設置的文本

78CE3A01-8780-4719-8FA3-C34710304085.png

複製  Object ID 

A17470AF-B7A5-4200-87EF-4A2B45462F0B.png在 

  1. 在兩個 Main.string分別寫上:  

  2.   

  3. "Qub-Cw-tR8.text" = 「中文 文本顯示在 label上」;  

  4.   

  5. "Qub-Cw-tR8.text" = 「English  Text」;  


而後運行能夠看到,label的文本被自動的設置了 文本

原文地址http://blog.csdn.net/yangbingbinga

相關文章
相關標籤/搜索