iOS國際化多語言設置

1、建立工程、添加語言

2、將文本從代碼中分離:

目前,應用展現的全部文本都是以硬編碼字符串存在於Main.storyboard 和 ViewController裏。爲了本地化這些字符串,你須要把它們放在一個單獨的文件中。他將會在包中簡單地引用這些字符串,而不是在你的方法中進行硬編碼。
Xcode使用帶有 .strings 擴展名的文件來存儲和檢索app中使用的全部字符串,以支持每種語言。根據iOS 設備當前使用的語言,代碼中一個簡單的方法調用將會查找並返回要求的字符串。app

建立一個.strings 擴展名的文件,命名爲 Localizable.strings編碼

 單擊 Localizable.strings文件,在右邊的屬性欄中設置Localizationspa

 

 選擇一種語言3d

 在左邊屬性欄Localization中勾選須要的語言,右邊 Localizable.strings路徑下對應會建立兩個語言文件code

 

 

打開對應的語言文件添加代碼,例如:blog

English:圖片

MessageText = "Hello World";字符串

或者string

"MessageText" = "Hello World";it

Chinese:

MessageText = "你好";

或者

"MessageText" = "你好";

 

ViewController.m

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 214, 30)];
4     // 從語言文件中獲取key爲MessageText的value值
5     label.text = NSLocalizedString(@"MessageText", nil);;
6     [self.view addSubview:label];
7 }

 

 模擬器語言爲英文狀態下運行:

中文狀態下運行:

3、storyboard(xib同理)

在Main.storyboard中拖一個UILabel,text爲BeyBey

在對應的Main.strings(Chinese(Simplified))中寫代碼:

"jC2-j5-VY3.text" = "再見";

jC2-j5-VY3是對應UILabel的ObjectID

英文環境下運行結果:

中文環境下運行:

4、app名稱

建立InfoPlist.strings

English:

CFBundleDisplayName = "English";

Chinese:

英文狀態下:


中文狀態下:

 5、圖片

第一種:

將圖片名稱存在Localizable.strings對應的文件中,用代碼經過NSLocalizedString獲取圖片名稱。

第二種:

選中圖片,點擊右側屬性的Localization,選中語言文件。

而且在項目文件夾中會出現en.lproj文件和zh-Hans.lproj文件;

en.lproj文件存放的是英文版圖片,zh-Hans.lproj存放的是中文版圖片,中英文圖片名字同樣,咱們在文件夾中直接替換圖片就能夠了

相關文章
相關標籤/搜索