删除本地化故事板

时间:2014-05-20 11:04:45

标签: objective-c internationalization storyboard

我已经尝试过本地化并遵循" This"指导几个月前。然后继续开发而不跟上其他故事板(即添加到基础而不支持让我们说西班牙语故事板)。 因此,当定义了具有西班牙语界面的iPhone时,我的应用程序会崩溃,因为它正在寻找西班牙语故事板,

我回到项目的属性删除了使用国际化以及删除(使用 - )西班牙语

因此我的故事板从解决方案中消失了,当语言被定义为西班牙语时,应用程序仍然崩溃。

我的问题:

  1. 有没有办法在一个故事板上开发,它会自动更新其余的?
  2. 有没有办法只在一个故事板上开发,所有语言都会随之运行?
  3. 我怎样才能找到&在我的解决方案中恢复故事板
  4. 感谢。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用一个故事板来处理本地化。

首先,您应该创建一个用于本地化字符串的宏:

#define NSLocalizedString(key, comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

然后,您可以在要本地化的每个UI元素上创建一个类别。例如,对于UILabel,您可以创建:

UILabel+Localization.h

#import <UIKit/UIKit.h>

@interface UILabel (Localization)

@end

UILabel+Localization.m

#import "UILabel+Localization.h"

@implementation UILabel (Localization)

-(void)setLocalizeKey:(NSString*)key {
  self.text = NSLocalizedString(key, nil);
}

@end

之后,在UIStoryboard中选择要本地化的元素,并在身份检查器中添加将设置本地化密钥的用户定义的运行时属性:

localized key in user defined runtime attributes