Ios 强制情节提要显示特定的基础本地化

Ios 强制情节提要显示特定的基础本地化,ios,localization,storyboard,xcode5,Ios,Localization,Storyboard,Xcode5,我有一个基本本地化的故事板,故事板本身没有本地化 我希望使用基本定位来本地化应用程序,并且仍然能够从应用程序本身内部更改本地化 现在我对这种方法很满意- +(NSString*)localizedStringForKey:(NSString*) key { NSBundle* languageBundle = [self localizationBundle]; NSString* str=[languageBundle localizedStringForKey:key val

我有一个基本本地化的故事板,故事板本身没有本地化 我希望使用基本定位来本地化应用程序,并且仍然能够从应用程序本身内部更改本地化

现在我对这种方法很满意-

+(NSString*)localizedStringForKey:(NSString*) key
{
    NSBundle* languageBundle = [self localizationBundle];
    NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
    return str;
}
但这只适用于我在代码中指定的动态字符串。 有没有办法强迫故事板使用特定的基本本地化,或者我应该放弃使用此选项并在代码中创建所有字符串

谢谢
SHani

您可以对故事板实施与字符串相同的方法:

// Utils class...
+ (NSString *)localizedStoryboardForName:(NSString *)key
{
    NSBundle *languageBundle = [self localizationBundle];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:key bundle:languageBundle];
    return storyboard;
}
若在项目的plist中定义了主情节提要,请删除该记录并在AppDelegate中显式创建


然后用不同的语言创建故事板。它们应该以与Localizable.strings文件相同的方式进行本地化。

@Artel Stepanenko如果已为情节提要启用大小类,并且正在为情节提要翻译使用可本地化字符串,则此操作不起作用。在这种情况下,会引发异常,路径处似乎没有有效的已编译故事板。。。。如何处理这个问题有什么想法吗?
// AppDelegate class...
UIStoryboard *storyboard = [Utils localizedStoryboardForName:@"Main"];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:[storyboard instantiateInitialViewController]];
[self.window makeKeyAndVisible];