图书馆的ios本地化问题

图书馆的ios本地化问题,ios,localization,bundle,nslocale,Ios,Localization,Bundle,Nslocale,我正在尝试开发一个自定义控件,并计划使用带有拖放安装的github发布它。 为了支持本地化字符串,我创建了一个myControl.bundle目录,其中包含en.lproj和de.lproj文件夹。每个文件夹都包含一个myControl.strings,其中包含特定于语言的内容 在代码中,我定义了如下宏: #define myLocalizedString(key) \ NSLocalizedStringFromTableInBundle(key, @"myControl", [NSBundle

我正在尝试开发一个自定义控件,并计划使用带有拖放安装的github发布它。 为了支持本地化字符串,我创建了一个myControl.bundle目录,其中包含en.lproj和de.lproj文件夹。每个文件夹都包含一个myControl.strings,其中包含特定于语言的内容

在代码中,我定义了如下宏:

#define myLocalizedString(key) \
NSLocalizedStringFromTableInBundle(key, @"myControl", [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myControl.bundle"]], nil)
然后我使用

myLocalizedString(@"WHATEVER_TITLE");
在xcode中,我将方案编辑为“应用语言”德语和“应用区域”德语。当我在模拟器中运行它时,它就像一个魔咒,显示一个德国用户界面

当我在设置为德语和德语区域的设备上运行它时,它会显示一个英语用户界面

下面的代码

NSString *language1 = [[[NSBundle mainBundle] preferredLocalizations] firstObject];
    NSString *language2 = [[[NSBundle mainBundle] preferredLocalizations] lastObject];
    NSString *language3 = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSLog(@"%@ %@ %@",language1, language2, language3);
NSString *language1 = [[[NSBundle mainBundle] localizations] firstObject];
    NSString *language2 = [[[NSBundle mainBundle] localizations] lastObject];
    NSString *language3 = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSLog(@"%@ %@ %@",language1, language2, language3);
给我这个输出:

en en de
Base en de
我做错了什么

提前谢谢

**编辑:

下面的代码

NSString *language1 = [[[NSBundle mainBundle] preferredLocalizations] firstObject];
    NSString *language2 = [[[NSBundle mainBundle] preferredLocalizations] lastObject];
    NSString *language3 = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSLog(@"%@ %@ %@",language1, language2, language3);
NSString *language1 = [[[NSBundle mainBundle] localizations] firstObject];
    NSString *language2 = [[[NSBundle mainBundle] localizations] lastObject];
    NSString *language3 = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSLog(@"%@ %@ %@",language1, language2, language3);
给我这个输出:

en en de
Base en de

没关系,我成功了。上次编辑时的基本输出给了我一个正确方向的提示。没关系,我成功了。上次编辑中的基本输出给了我一个正确方向的提示。