Objective c 删除本地化故事板

Objective c 删除本地化故事板,objective-c,internationalization,storyboard,Objective C,Internationalization,Storyboard,几个月前,我尝试过本地化,并遵循了“”指南。然后继续开发而不跟上其他故事板(即添加到基础中,而不支持西班牙语故事板)。 因此,当定义了具有西班牙语界面的iPhone时,我的应用程序会崩溃,因为它正在寻找西班牙语情节提要 我回到项目的属性,删除了使用国际化以及删除(使用-)西班牙语 结果,我的故事板从解决方案中消失了,当语言定义为西班牙语时,应用程序仍然会崩溃 我的问题是: 是否有一种方法可以在一个故事板上开发,并自动更新其余的故事板 有没有一种方法可以只在一个故事板上开发,所有语言都可以使用它

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

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

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

我的问题是:

  • 是否有一种方法可以在一个故事板上开发,并自动更新其余的故事板
  • 有没有一种方法可以只在一个故事板上开发,所有语言都可以使用它
  • 如何在解决方案中查找和恢复情节提要

  • 谢谢。

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

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

    #define NSLocalizedString(key, comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
    
    然后,您可以在要本地化的每个UI元素上创建一个类别。例如,对于UILabel,您可以创建:

    UILabel+Localization.h
    
    #import <UIKit/UIKit.h>
    
    @interface UILabel (Localization)
    
    @end
    
    然后,在UIStoryboard中选择要本地化的元素,并在identity inspector中添加一个用户定义的运行时属性,该属性将设置本地化键:

    UILabel+Localization.m
    
    #import "UILabel+Localization.h"
    
    @implementation UILabel (Localization)
    
    -(void)setLocalizeKey:(NSString*)key {
      self.text = NSLocalizedString(key, nil);
    }
    
    @end