我尝试使用推荐的InfoPlist.strings
向Info.plist添加本地化值我是否还需要将密钥保存在Info.plist中?
我的信息列表
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
我的本地化字符串
en.proj
-> InfoPlist.strings
/* Localized versions of Info.plist keys */
CFBundleName = "ABC-EN";
it.proj
-> InfoPlist.strings
/* Localized versions of Info.plist keys */
CFBundleName = "ABC-IT";
如果我将密钥保存在Info.Plist中,如上所述,在代码中,一个应该具有键值的变量
_localisedName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
返回Info.plist(myApp)中的字符串
如果我从Info.plist中删除CFBundleName
,则字符串为&lt; nil&gt;
我还缺少另一种设置? 我尝试在复制包中添加和删除这两个文件(没有任何更改)。
答案 0 :(得分:4)
搜索它相当“复杂”,但我最终发现它,我希望它对其他人有用
_localisedName = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleName"];
<强> localizedInfoDictionary 强>
使用bundle的本地化属性列表中的键返回一个字典。
- (NSDictionary *)localizedInfoDictionary
返回值 包含来自bundle的本地化属性列表(InfoPlist.strings)的键的字典。
<强>讨论强>
此方法在确定要返回的资源时使用当前用户的首选本地化。如果首选本地化不可用,则此方法会选择捆绑包中最合适的本地化。
答案 1 :(得分:0)
你没有错过任何设置,你正在调用错误的方法。您需要调用其中一个本地化的字符串方法,例如:
_localisedName = NSLocalizedString(@"CFBundleName", nil);