我的解决方案
首先您需要创建字符串文件
Go to Project Right Click.
New File->iOS
Under iOS you can see the Resource
Click Resource and you can see the String File among the group of files.
Click that give name whatever you want.
现在您可以创建下面的字符串文件。
"Date"="Date";
"Time"="Time";
"Done"="Done";
"Back"="Back";
在appDelegate.h中
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
NSString *path;
AppDelegate *app=(AppDelegate *)[[UIApplication sharedApplication]delegate];
if(app.currentLanguage==ENGLISH)
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if(app.currentLanguage==TAMIL)
path = [[NSBundle mainBundle] pathForResource:@"ta-IN" ofType:@"lproj"];
else if(app.currentLanguage==SPANISH)
path = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
else if(app.currentLanguage==FRENCH)
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
else if(app.currentLanguage==JAPANESE)
path = [[NSBundle mainBundle] pathForResource:@"ja" ofType:@"lproj"];
else if(app.currentLanguage==GERMAN)
path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
else if(app.currentLanguage==KOREAN)
path = [[NSBundle mainBundle] pathForResource:@"ko" ofType:@"lproj"];
else if(app.currentLanguage==RUSSIAN)
path = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
else if(app.currentLanguage==HINDI)
path = [[NSBundle mainBundle] pathForResource:@"hi" ofType:@"lproj"];
else if(app.currentLanguage==CHINESE)
path = [[NSBundle mainBundle] pathForResource:@"zh-Hans" ofType:@"lproj"];
else if(app.currentLanguage==ITALIAN)
path = [[NSBundle mainBundle] pathForResource:@"it" ofType:@"lproj"];
else if(app.currentLanguage==PORTUGUESE)
path = [[NSBundle mainBundle] pathForResource:@"pt" ofType:@"lproj"];
else if(app.currentLanguage==THAI)
path = [[NSBundle mainBundle] pathForResource:@"th" ofType:@"lproj"];
else if(app.currentLanguage==MALAY)
path = [[NSBundle mainBundle] pathForResource:@"ms" ofType:@"lproj"];
else if(app.currentLanguage==INDONESIAN)
path = [[NSBundle mainBundle] pathForResource:@"id" ofType:@"lproj"];
else if(app.currentLanguage==CHINESE1)
path = [[NSBundle mainBundle] pathForResource:@"zh-Hant" ofType:@"lproj"];
else
{
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
}
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:@"LocalizeSTRING"];
return str;
}
在 appDelegate.m 的 didFinishLaunchingWithOptions 中调用上面的方法
NSString *str=[[[NSUserDefaults standardUserDefaults]objectForKey:@"AppleLanguages"] objectAtIndex:0];
if([str isEqualToString:[NSString stringWithFormat: @"en"]])
{
currentLanguage=ENGLISH;
selectedrow=ENGLISH;
}
else if([str isEqualToString:[NSString stringWithFormat: @"ta-IN"]])
{
currentLanguage=TAMIL;
selectedrow=TAMIL;
}
else if([str isEqualToString:[NSString stringWithFormat: @"es"]])
{
currentLanguage=SPANISH;
selectedrow=SPANISH;
}
else if([str isEqualToString:[NSString stringWithFormat: @"fr"]])
{
currentLanguage=FRENCH;
selectedrow=FRENCH;
}
else if([str isEqualToString:[NSString stringWithFormat: @"ja"]])
{
currentLanguage=JAPANESE;
selectedrow=JAPANESE;
}
else if([str isEqualToString:[NSString stringWithFormat: @"de"]])
{
currentLanguage=GERMAN;
selectedrow=GERMAN;
}
else if([str isEqualToString:[NSString stringWithFormat: @"ko"]])
{
currentLanguage=KOREAN;
selectedrow=KOREAN;
}
else if([str isEqualToString:[NSString stringWithFormat: @"ru"]])
{
currentLanguage=RUSSIAN;
selectedrow=RUSSIAN;
}
else if([str isEqualToString:[NSString stringWithFormat: @"hi"]])
{
currentLanguage=HINDI;
selectedrow=HINDI;
}
else if([str isEqualToString:[NSString stringWithFormat: @"zh-Hans"]])
{
currentLanguage=CHINESE;
selectedrow=CHINESE;
}
else if([str isEqualToString:[NSString stringWithFormat: @"it"]])
{
currentLanguage=ITALIAN;
selectedrow=ITALIAN;
}
else if([str isEqualToString:[NSString stringWithFormat: @"pt"]])
{
currentLanguage=PORTUGUESE;
selectedrow=PORTUGUESE;
}
else if([str isEqualToString:[NSString stringWithFormat: @"th"]])
{
currentLanguage=THAI;
selectedrow=THAI;
}
else if([str isEqualToString:[NSString stringWithFormat: @"ms"]])
{
currentLanguage=MALAY;
selectedrow=MALAY;
}
else if([str isEqualToString:[NSString stringWithFormat: @"id"]])
{
currentLanguage=INDONESIAN;
selectedrow=INDONESIAN;
}
else if([str isEqualToString:[NSString stringWithFormat: @"zh-Hant"]])
{
currentLanguage=CHINESE1;
selectedrow=CHINESE1;
}
[self languageSelectedStringForKey:str];
然后在您所需的视图控制器中
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
app=(AppDelegate *)[[UIApplication sharedApplication]delegate];
if(app.currentLanguage==ENGLISH)
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if(app.currentLanguage==TAMIL)
path = [[NSBundle mainBundle] pathForResource:@"ta-IN" ofType:@"lproj"];
else if(app.currentLanguage==SPANISH)
path = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
else if(app.currentLanguage==FRENCH)
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
else if(app.currentLanguage==JAPANESE)
path = [[NSBundle mainBundle] pathForResource:@"ja" ofType:@"lproj"];
else if(app.currentLanguage==GERMAN)
path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
else if(app.currentLanguage==KOREAN)
path = [[NSBundle mainBundle] pathForResource:@"ko" ofType:@"lproj"];
else if(app.currentLanguage==RUSSIAN)
path = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
else if(app.currentLanguage==HINDI)
path = [[NSBundle mainBundle] pathForResource:@"hi" ofType:@"lproj"];
else if(app.currentLanguage==CHINESE)
path = [[NSBundle mainBundle] pathForResource:@"zh-Hans" ofType:@"lproj"];
else if(app.currentLanguage==ITALIAN)
path = [[NSBundle mainBundle] pathForResource:@"it" ofType:@"lproj"];
else if(app.currentLanguage==PORTUGUESE)
path = [[NSBundle mainBundle] pathForResource:@"pt" ofType:@"lproj"];
else if(app.currentLanguage==THAI)
path = [[NSBundle mainBundle] pathForResource:@"th" ofType:@"lproj"];
else if(app.currentLanguage==MALAY)
path = [[NSBundle mainBundle] pathForResource:@"ms" ofType:@"lproj"];
else if(app.currentLanguage==INDONESIAN)
path = [[NSBundle mainBundle] pathForResource:@"id" ofType:@"lproj"];
else if(app.currentLanguage==CHINESE1)
path = [[NSBundle mainBundle] pathForResource:@"zh-Hant" ofType:@"lproj"];
else
{
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
}
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:@"LocalizeSTRING"];
return str;
}
在你的 viewDidLoad 和 viewWillAppear 方法中调用上面的方法或者在你想要调用的地方调用该方法
- (void)viewWillAppear:(BOOL)animated
{
//If you want to set language in label,TextFiled
localizeBackLabel.text=[self languageSelectedStringForKey:@"Back"];
localizeDoneLabel.text=[self languageSelectedStringForKey:@"Done"];
localizeTimeLabel.text=[self languageSelectedStringForKey:@"Time"];
localizeDateLabel.text=[self languageSelectedStringForKey:@"Date"];
//If you want to set language in button
[yourButton setTitle:[self languageSelectedStringForKey:@"Back"]; forState:UIControlStateNormal];
[yourButton setTitle:[self languageSelectedStringForKey:@"Done"]; forState:UIControlStateNormal];
//If you want to set the Language in cell
cell.labelHomeList.text=[self languageSelectedStringForKey:@"Date"];
cell.labelHomeList.text=[self languageSelectedStringForKey:@"Time"];
}
最后,如果您想将语言更改为其他语言。例如,在(设置)表中您有两种语言。如果您想将其更改为其他语言,请按照以下编码操作
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
AppDelegate *app=(AppDelegate *)[[UIApplication sharedApplication]delegate];
app.selectedrow=indexPath.row;
if (indexPath.row==0)
{
app.currentLanguage=ENGLISH;
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil]forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"%d", [[NSUserDefaults standardUserDefaults] synchronize]);
}
else
{
app.currentLanguage=CHINESE1;
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-Hant", nil]forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
它工作完美。