Xcode 4:框架本地化不起作用

前端之家收集整理的这篇文章主要介绍了Xcode 4:框架本地化不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Xcode 4开发自己的框架,我在两个示例应用程序(控制台和Mac OS X Cocoa应用程序)中使用它.

我正在尝试向框架添加本地化,​​所以我创建了两个版本的Localizable.strings文件(en和fr版本),但每次我尝试从示例应用程序打印本地化字符串时,我只得到它的技术名称.例如,在框架代码中包含以下行:

NSLog(NSLocalizedString(@"LOC_TEST",nil));

我只在输出显示“LOC_TEST”…

然而,本地化与Cocoa应用程序本身一起工作正常(意味着Cocoa应用程序的本地化字符串被正确显示).

this article之后,我尝试在框架的plist文件添加本地化:

<key>CFBundleLocalizations</key>
<array>
    <string>en</string>
    <string>fr</string>
</array>

但它没有改变任何东西……

我错过了什么?

解决方法

不通过框架选择正确的.strings文件的原因是在NSLocalizedString宏中:
#define NSLocalizedString(key,comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

Framework的.strings文件的位置不是宏中指定的[NSBundle mainBundle].

从我看到的,您需要使用NSLocalizedStringFromTableInBundle来指定框架的包位置.

猜你在找的iOS相关文章