多语言设置
http://www.jianshu.com/p/88c1b65e3ddb
http://blog.csdn.net/feng2qing/article/details/60479620
一、设置多语言环境
1、先在 Project 的 .info 里添加所需要支持的语言,这里选择的是Chinese(Simplified)和English-Development Language

2、创建 Localizable.strings 文件(注意:文件名最好不要随意更改)作为多语言对应的词典,存储多种语言

3、设置文件夹选择支持的语言


4、设置宏定义,在 Localizable.strings 里随意设置所需要支持的语言
Localizable.strings 格式:Localizable.strings内设置格式:"testName" = "测试名称"
使用的时候:NSLocalizedString 代替 String:NSLocalizedString(@"testName",nil)
二、使用
- 宏定义
// #define ChangeLanguageNotificationName @"changeLanguage"
#define ASLocalizedString(key) [NSString stringWithFormat:@"%@", [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"Localizable"]]
#define appLanguage @"appLanguage"
- APPDelegate.m 里面设置多语言
在 didFinishLaunchingWithOptions 方法中调用该方法
[self setLangueage];
#pragma mark - settingLanguage
- (void)setLanguage {
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 if ([language hasPrefix:@"zh-TW"] || [language hasPrefix:@"zh-HK"] || [language hasPrefix:@"zh-Hant"]) {
[[NSUserDefaults standardUserDefaults] setObject:@"zh-Hant" forKey:appLanguage];
} else if ([language hasPrefix:@"en"]) {
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:appLanguage];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:appLanguage];
}
}
}
- 在页面中使用
self.usernameField.placeholder = ASLocalizedString(@"usernameField");
APP 内设置按钮
self.changeLanguageBtn.selected = !self.changeLanguageBtn.selected;
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:appLanguage]);
if ([[[NSUserDefaults standardUserDefaults] objectForKey:appLanguage] isEqualToString:@"zh-Hans"]) {
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:appLanguage];
} else {
[[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:appLanguage];
}