繁体   English   中英

Localizable.strings在iOS框架中不起作用

[英]Localizable.strings won't work in iOS framework

我有一个捆绑在一起的本地化框架。

捆绑包构建之前的本地化屏幕截图:

在此处输入图片说明

这是我在框架中使用的代码,用于获取包和字符串:

+ (NSBundle*) bundleWithName:(NSString*)name {
NSString *mainBundlePath = [[NSBundle mainBundle] resourcePath];
NSString *frameworkBundlePath = [mainBundlePath stringByAppendingPathComponent:name];
if ([[NSFileManager defaultManager] fileExistsAtPath:frameworkBundlePath]){
    return [NSBundle bundleWithPath:frameworkBundlePath];
}
return nil;
}


+(NSString *)localizedStringFromBundleWithKey:(NSString *)keyString
{
return NSLocalizedStringFromTableInBundle(keyString, nil, [Common bundleWithName:@"MyCool.bundle"], nil);
}

然后访问我的本地化字符串:

[infoView setFirstButtonTitle:[Common localizedStringFromBundleWithKey:@"dialog_button_preferences"]];

当我放下框架并将其捆绑到测试项目中时,它看起来像这样:

在此处输入图片说明

如果我将设备更改为西班牙语或任何其他语言,则字符串将全部以英文显示在测试项目中。

然后进一步解决这个问题-如果我将Localizable.strings添加到测试项目中(除了框架捆绑包中的内容),则所有本地化均无效,而是显示“键”名称。

本地化iOS框架的正确方法是什么?

一个应用程序可以由多个捆绑软件组成,因此并非所有资源都是主捆绑软件的一部分。 + (NSBundle *)bundleForClass:(Class)aClass与您的一个+ (NSBundle *)bundleForClass:(Class)aClass使用,以获取正确的资源捆绑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM