[英]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.