gpt4 book ai didi

ios - Xcode 单元测试找不到 Localizable.strings

转载 作者:行者123 更新时间:2023-11-29 02:58:51 28 4
gpt4 key购买 nike

我正在尝试测试一个分层本地化结构,该结构首先在一个文件中搜索本地化,如果在第一个表中找不到它,则默认为 Localizable.strings。

这是执行此操作的代码:

+ (instancetype)sharedInstance {
static LLLocalizationUtil *sharedLocalizationUtil = nil;
static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{
sharedLocalizationUtil = [[self alloc] init];
});

return sharedLocalizationUtil;
}

- (LLLocalizationUtil *)init {
self = [super init];
if (self) {
_bundle = [NSBundle bundleForClass:[self class]];
}
return self;
}

- (NSString *)locateString:(NSString *)key {

NSString *locString =
[self.bundle
localizedStringForKey:key
value:[self.bundle localizedStringForKey:key
value:nil
table:@"Localizable"]
table:@"Localizable_Specific"];

return locString;

}

这是试图测试它的单元测试:

SPEC_BEGIN(LocalizationUtil)

describe(@"We want a tool to support hierarchical localization", ^{
__block NSFileManager *manager;
__block LLLocalizationUtil *localUtil;

beforeAll(^{
localUtil = [LLLocalizationUtil sharedInstance];
localUtil.bundle = [NSBundle bundleForClass:NSClassFromString(@"LLLocalizationUtilTests")];
});
context(@"with multiple localization files", ^{
it(@"and one carrier", ^{
NSString *attString = [localUtil locateString:@"button.text"];
[[attString should] equal:@"Click me!"];

});
});
});
SPEC_END

我尝试了几种不同的方法来设置 Bundle 路径,但似乎都不起作用;显然这个也是错误的。

我在 Xcode 项目中有 Localizable.strings 文件,尽我所能正常本地化:

可本地化的字符串:

"some.key" = "some_value";
"button.title" = "wrong";

Localizable_Specific.strings:

"button.title" = "Click me!";
"activity.title" = "Activity Window";

问题似乎是 Bundle 无法找到 Localizable_Specific 文件来进行查找,而且它似乎也忽略了 Localizable.strings。测试返回原始键值,也没有“点击我!”也不是“错误”。

最佳答案

通过仔分割析最愚蠢的事情解决了:当我想要“button.title”时,我正在寻找“button.text”

感叹。

关于ios - Xcode 单元测试找不到 Localizable.strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23530652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com