我希望从某个页面更改本地化我的应用程序(例如:从“设置”页面)?
但我不确定我这个应用程序商店是否拒绝我的应用程序!
所以问题:
1我可以做这个功能吗? 如果是的话,也许你有一些例子?
2请给我链接允许或禁止这样做的文件!
答案 0 :(得分:3)
请为您的问题找到以下答案
1.是。你可以实现它。
在我们的项目中,我们为每种语言添加了可本地化的字符串。在设置屏幕中,我们显示了下拉菜单以选择应用程序的语言
例如
switch([indexPath row])//table row index selected by user
{
case 1:[[NSUserDefaults standardUserDefaults] setValue:@"french" forKey:@"language"];
break;
case 2:[[NSUserDefaults standardUserDefaults] setValue:@"german" forKey:@"language"];
break;
case 0:[[NSUserDefaults standardUserDefaults] setValue:@"english" forKey:@"language"];
break;
case 3:[[NSUserDefaults standardUserDefaults] setValue:@"Portuguese" forKey:@"language"];
break;
}
默认情况下,我们第一次设置了英语。在选择语言之后,我们通过将键传递给它来调用以下函数
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
//set = [[SettingsViewController alloc]initWithNibName:@"SettingsViewController" bundle:nil];
NSString *path=@"";
NSString *currentLanguage=[[NSUserDefaults standardUserDefaults] valueForKey:@"language"];
if([currentLanguage isEqualToString:@"english"])
{
path = [[NSBundle mainBundle] pathForResource:@"English" ofType:@"lproj"];
}
else if([currentLanguage isEqualToString:@"german"])
{
path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
}
else if([currentLanguage isEqualToString:@"french"])
{
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
}
else if([currentLanguage isEqualToString:@"Portuguese"])
{
path = [[NSBundle mainBundle] pathForResource:@"Portuguese" ofType:@"lproj"];
}
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
return str;
}
例如。
aboutUsTitle.text=[self languageSelectedStringForKey:@"AboutUs"];
在localizable文件中,您必须设置以下键值才能获得关于我们的值
"AboutUs" = "A propos de nous";//for french(fr.lproj)
"AboutUs" = "About Us";//for english(english.lproj)
2。http://kb.tethras.com/localizing-your-ios-app
希望这会对你有所帮助
答案 1 :(得分:0)
是的,您可以在应用的某些页面中实现它。 请阅读本教程
通过此代码,您可以将所需的单词翻译成所需的语言。
NSString *translatedString = [self languageSelectedStringForKey:@"YesButton"]; // Give your key here
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
NSString *path;
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"]; // give your language type in pathForResource, i.e. "en" for english, "da" for Danish
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
return str;
}
希望这会有所帮助。谢谢。快乐的编码。