【问题标题】:Change iOS Language without Restarting the app only with Images(around 300)仅使用图像更改 iOS 语言而不重新启动应用程序(大约 300)
【发布时间】:2014-05-27 17:37:44
【问题描述】:

我正在开发一个包含 300 张图片(无文本)的应用,并尝试通过单击按钮而不重新启动来更改语言。

- (IBAction)changeArab:(id)sender {

NSArray* languages = [NSArray arrayWithObjects:@"en", @"fr", nil];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
}

当我使用上面的代码重新启动应用程序时,我可以更改语言。

我使用所需语言本地化了所有图像,无论如何,一旦语言更改或更改应用程序,我是否可以重新加载视图。

【问题讨论】:

  • 你能举例说明如何使用两种语言的图像吗?

标签: ios localization


【解决方案1】:

是的,您可以在不重新启动应用程序的情况下更改它。

你必须使用 NSNotificationCenter。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(localeChanged:)
                                                     name:NSCurrentLocaleDidChangeNotification
                                                   object:nil];

}

- (void)localeChanged:(NSNotification *)notif
{
    // the user changed the locale 

  //code to update views or data set.
}

如果您没有以这种方式本地化您的应用程序。然后将自定义观察者添加到通知中心,当用户在您的自定义设置视图中更改语言时,它将生成本地通知,该通知将被应用程序捕获并收到通知,您可以从中再次加载所有视图。

【讨论】:

  • 严格来说这不会改变语言,它会监听系统语言的变化,因此您可以相应地更新您的应用程序。用户必须转到 iOS 设置应用程序才能更改操作系统的语言。如果您使用 Apple 工具正确实施本地化,则无需手动更新此类内容。
猜你喜欢
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 2017-10-05
  • 2012-03-14
相关资源
最近更新 更多