iOS8区域本地化(例如pt-BR)?

根据我的理解,iOS8现在支持区域本地化(在这种情况下,我想支持pt-BR)。

请访问http://www.ibabbleon.com/iOS-Language-Codes-ISO-639.html

我遇到了这个问题,用一个全新的单一视图应用程序测试,在xcode中我已经将pt和pt-BR语言添加到我的项目中,并在pt.lproj和pt-BR.lproj目录中相应地更改了文本。

将我的设备设置为pt-BR并运行后,显示的文本始终为pt,而不是pt-BR。

确实记录了NSLocale返回的首选语言环境

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; NSLog(@"Locale = %@", language); 

仅返回’Locale = pt’…

我错过了任何步骤,还是iOS8中的错误?

谢谢你的帮助…

根据苹果文档,应返回IETF BCP 47。 因此,如果这是您首选的系统语言,您应该获得pt-BR。

如果你想要的只是我建议你使用的当前语言环境:

 [[NSLocale currentLocale] localeIdentifier] 

如果要在应用程序运行时支持区域设置更改,请将currentLocale替换为autoupdatingCurrentLocale。

编辑:区域设置与语言ID不同! 我为我的误会道歉。 无论如何,“pt”是巴西葡萄牙语的正确语言ID:

…例如,使用pt作为葡萄牙语的语言ID,因为它在巴西使用,pt-PT作为葡萄牙语的语言ID,因为它在葡萄牙使用。 “其他”子菜单(位于列表底部)包含更多语言和方言。

来自: https : //developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html

出于某种原因,iOS8正在使用pt for Portuguese Brasil (而不是pt_BR )。 选择葡萄牙葡萄牙语时 ,本地化将为pt_PT

我删除了本地化,并添加了通用葡萄牙语(并用.strings文件替换旧的文件)。