我正在尝试使用InAppSettingsKit来管理我的设置。这个库使用了Settings.bundle文件夹中的.plist文件和每种语言对应的.strings文件进行翻译。
在应用程序外,我可以确认我的字符串已经被正确翻译,并且在设置应用程序中也能正常显示。但是,在我的应用程序内部,翻译并没有发生。
我认为问题可能出在像这样的代码上,它位于InAppSettingsKit类IASKSettingsReader中,并带有一些我认为可能有用的日志记录语句:
如果我理解正确,这应该使用名为
我已经确认字符串文件名在整个文件中都是"Root.strings",包括Root.plist文件。
我不知道如何调试这个问题。感谢您能提供的任何帮助。
在应用程序外,我可以确认我的字符串已经被正确翻译,并且在设置应用程序中也能正常显示。但是,在我的应用程序内部,翻译并没有发生。
我认为问题可能出在像这样的代码上,它位于InAppSettingsKit类IASKSettingsReader中,并带有一些我认为可能有用的日志记录语句:
- (NSString*)titleForStringId:(NSString*)stringId {
NSLog(@"%@",[_bundle localizedStringForKey:stringId value:stringId table:self.localizationTable]);
NSLog(@"%@",[_bundle localizedInfoDictionary]);
return [_bundle localizedStringForKey:stringId value:stringId table:self.localizationTable];
}
如果我理解正确,这应该使用名为
self.localizationTable
的表作为翻译源。这个值只是"Root"。它不是所选语言中Root.strings
文件的路径,因此我猜测方法localizedStringForKey:value:table:
必须使用一些全局系统引用来指向正确的路径。我已经确认字符串文件名在整个文件中都是"Root.strings",包括Root.plist文件。
[_bundle localizedInfoDictionary]
返回(null)。对于英语和法语两种语言设置,它都是这样做的。我不知道如何调试这个问题。感谢您能提供的任何帮助。