ios使用storyboard可本地化字符串进行动态本地化

时间:2013-12-06 05:39:12

标签: ios objective-c localization uistoryboard

我的应用程序中有2种语言,英语和荷兰语,重点是我希望语言能够动态更改,让我们说按一下按钮。

有没有办法在不必在代码中编写NSLocalizedString(@"key",@"comment")的情况下执行此操作?即:仅使用故事板,并以某种方式使故事板在点击按钮或其他东西时自动刷新。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

使用Singleton调用本地字符串。

首先设置语言类型按钮;

- (void)setLanguageType:(LanguageType)languageType {
  if (_languageType != languageType) {
      _languageType = languageType;
      [self setBundleForName:bundleForType(languageType)];
      //POST notification if necessary
  }
}

- (void)setBundleForName:(NSString* )name {
  NSString* path = [[ NSBundle mainBundle ] pathForResource:name ofType:@"lproj"];
  _bundle = [NSBundle bundleWithPath:path];
}

然后,     通过localizedString获取字符串。

[[__class sharedInstance] localizedStringForKey:__key];

- (NSString* )localizedStringForKey:(NSString* )key {
  return [_bundle localizedStringForKey:key value:nil table:nil];

}

如果您需要更多帮助,请给我留言。

答案 1 :(得分:2)

如果要创建自定义本地化系统。我们试试这个http://aggressive-mediocrity.blogspot.in/2010/03/custom-localization-system-for-your.html

答案 2 :(得分:0)

我最终使用这个link中的LocalizationSystem类来加载我需要的语言,我不得不通过代码绑定所有文本,我担心没有办法解决这个问题,如果您希望您的语言更改为应用内和实时!!

感谢大家的帮助。