ios – 使用InAppSettingsKit从Settings.bundle本地化字符串

前端之家收集整理的这篇文章主要介绍了ios – 使用InAppSettingsKit从Settings.bundle本地化字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用InAppSettingsKit来管理我的设置.这将使用带有.plist文件的Settings.bundle和要翻译的每种语言的.strings文件.

我可以使用Setting应用程序确认我的字符串的翻译在我的应用程序之外正常工作.但是当我在我的应用程序中时,翻译没有发生.

我认为它归结为这样的代码,来自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”,大概是R,包括在Root.plist文件中.

[_bundle localizedInfoDictionary]返回(null);它正在为英语和法语的两种语言设置执行此操作.

我不知道如何调试这个.谢谢你提供的所有帮助.

解决方法

我正在使用InAppSettingsKit本地化文本没有问题.我能想到的两件事你可以检查:你的Root.strings文件是否位于Settings.bundle的正确子目录中(英语和法语的en.lproj和fr.lproj?

Root.plist中是否有“Strings Filename”条目?它应该只包含一个值为“Root”的字符串

猜你在找的iOS相关文章