前言
上一片文章介紹的是根據(jù)系統(tǒng)語言自動切換,現(xiàn)在我們來說說怎么在APP中手動切換多語言。
iOS 國際化多語言(上)
配置
配置內(nèi)容還是和上篇文章一樣,不知道的可以點(diǎn)擊上面鏈接。
步驟
先新建一個(gè)Strings File 文件(iOS->Resource->Strings File)。文件名稱Language,名稱可以隨意,放的位置也可以隨意。

新建Language文件

選擇語言

英文

中文

首次設(shè)置語言
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]) {
NSArray *languages = [NSLocale preferredLanguages];
NSString *language = [languages objectAtIndex:0];
if ([language hasPrefix:@"zh-Hans"]) {//開頭匹配
[[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
}
修改語言,我們可以第一個(gè)宏,或者自行封裝
// 宏
#define Localized(key) [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"Language"]
// 方法
NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath: path];
NSString *value = [bundle localizedStringForKey:strL value:nil table:@"Language"];

使用