同一添加内容
appdelegate.m中 didFinishLanch里面新增方法
- (void)getlanguage{
NSArray *languages = [NSLocale preferredLanguages];
//判断当前系统语言
NSString *language = [languages objectAtIndex:0];
/// 判断上一次系统语言
NSString *lastSysLanguage = [[NSUserDefaults standardUserDefaults] objectForKey:@"systemLanguage"];
BOOL sysIsChange = NO;
if (![language containsString:lastSysLanguage]) {
sysIsChange = YES;
/// 设置系统语言
[[NSUserDefaults standardUserDefaults] setObject:language forKey:@"systemLanguage"];
}
NSInteger type = [[NSUserDefaults standardUserDefaults] integerForKey:@"appLanguageType"];
if (type == 1 && !sysIsChange) {
language = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
}
if ([language hasPrefix:@"zh"]) {
//我这里的需求是,如果不是中文,则APP语言都显示成英文,
//先把它存在NSUserDefaults中
[[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
} else if ([language hasPrefix:@"fr"]){
[[NSUserDefaults standardUserDefaults] setObject:@"fr" forKey:@"appLanguage"];
} else if ([language hasPrefix:@"ja"]){
[[NSUserDefaults standardUserDefaults] setObject:@"ja" forKey:@"appLanguage"];
} else if ([language hasPrefix:@"ko"]){
[[NSUserDefaults standardUserDefaults] setObject:@"ko" forKey:@"appLanguage"];
} else if ([language hasPrefix:@"tr"]){
[[NSUserDefaults standardUserDefaults] setObject:@"tr" forKey:@"appLanguage"];
} else{
//en.lproj 是英文资源包的文件名字
[[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
}
}
Strings文件版
一.简单版
1.创建一个 Localizable.strings 和 infoPlist.strings文件 (Newfile -- Resource -- String File);
2.点击工程名字,再点击 PROJECT 文件下的工程名字,选择 info ,再 Locallzation 一栏 添加语言;
3.点击Localizable.strings 和 infoPlist.strings文件,在右侧 Show the file inspector 中点击 Locallzation 按钮 选择一项语言激活Locallzation;
4.在语言文件里面 以 这种格式 "ALERT_CLOSE" = "关闭"; 两个内容自定,前提是各语言文件中的前缀的KEY:"ALERT_CLOSE"要保持一致;
5.在工程需要使用文字的地方用 宏:NSLocalizedString , 第一个@""位置输入 KEY ,第二个@""不填
例如: lab.text = NSLocalizedString(@"ALERT_AM", @"");
6.完成!
二.最新版
点我传送
三.详细版
四.多语言启动页
Bundle版
1.新建Bundle文件,生成好对应的多语言文件(en.lproj),并配置好键值对
2.定义宏定义,相关参数名配置好对应名字
#define LCLocalizedString(Context, comment) [NSString stringWithFormat:@"%@", [[NSBundle bundleWithPath:[[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"LCLanguage" ofType:@"bundle"]] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(Context) value:nil table:@"LCLanguage"]]