我正在尝试以编程方式更改MFmailComposer语言。最初,如果我选择"English mail“按钮,first MFMailComposer将以英语打开。现在如果我选择“阿拉伯邮件”按钮,那么MFMailComposer将以英语打开,而不是以阿拉伯语打开。
这是我的ViewController截图



那么,如何在不重新启动应用程序的情况下以编程方式更改MFMailComposer语言呢?
这是代码
- (IBAction)showInArabic:(id)sender
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ar", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self viewDidUnload];
[self viewDidLoad];
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self displayComposerSheet];
} else {
[self launchMailAppOnDevice];
}
} else {
[self launchMailAppOnDevice];
}
}
- (IBAction)showInEnglish:(id)sender
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSArray *languages = [NSArray arrayWithObject:@"en"];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[self viewDidUnload];
[self viewDidLoad];
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil) {
if ([mailClass canSendMail]) {
[self displayComposerSheet];
} else {
[self launchMailAppOnDevice];
}
} else {
[self launchMailAppOnDevice];
}
}发布于 2012-05-18 11:45:41
到目前为止,似乎还没有办法以编程方式改变MFMailComposer语言。默认情况下,它设置为英语。
发布于 2012-05-23 07:01:04
尝尝这个。对我来说挺好的。请在NSBundle中为英文和阿拉伯文提供本地化的字符串文件。这样你就需要在设备设置和应用程序之间切换。您可以通过应用程序改变语言。
#define currentLanguageBundle [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"]];为英文
[self changeLanguage : @"en"];为阿比克
[self changeLanguage : @"ar"];把这个放在Button的动作方法里
- (void)changeLanguage : (NSString*)inLang
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:inLang forKey:@"AppleLanguages"];
NSLog(@"test %@", NSLocalizedStringFromTableInBundle(@"NewKey", nil, currentLanguageBundle, @""));
}如果你对此有任何疑问,请放心。
https://stackoverflow.com/questions/10651708
复制相似问题