我开发了多语言、基于导航控制器的应用程序。应用程序的主菜单也有下面的设置屏幕。用户可以通过按下语言按钮更改为应用程序语言。当用户更改语言时,我想刷新主菜单屏幕并设置屏幕语言但我没有。
问问题
809 次
4 回答
4
NSString *path = [[NSBundle mainBundle] pathForResource:@"nl" ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath:path];
NSString *englishWord = @"translate";
NSString *translation = [bundle localizedStringForKey:englishWord value:englishWord table:nil];
NSLog(@"%@ = %@", englishWord, translation);
// nl.lproj/Localizable.strings:
"translate" = "vertaal"
于 2012-08-13T08:15:23.483 回答
1
请记住,Apple 不鼓励在应用程序中选择语言。最好的解决方案是只本地化您的视图并使用 NSLocalizableString,并让应用程序中的语言遵循手机设置的语言。
于 2012-08-13T08:28:42.323 回答
0
在 AppDelegate 中创建一个方法(返回从 plist 加载的语言字符串的字典)。每当用户选择一种语言时,相应地设置 NSUserDefaults,并在应用程序委托中调用该方法。现在在每个控制器的 viewWillAppear 中使用此方法并获取所需的语言字典并加载您的视图。
-(NSMutableDictionary*)getCurrentLanguageDictionaryFromResource
{
NSString *defaultPath;
defaultPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@.plist",[self getAppCurrentSettingsLanguage]] ofType:nil];
if(languageDictionary !=nil)
{
[languageDictionary release];
languageDictionary=nil;
}
languageDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:defaultPath];
return languageDictionary;
}
于 2012-08-13T09:02:18.680 回答
-1
如果要更改语言,则需要重新启动应用程序。
为此,您可以使用本地通知再次重新启动您的应用程序,并使用适当的消息向用户显示您的应用程序现在将重新启动。
希望这个描述对你有帮助......
于 2012-08-13T08:02:40.763 回答