【问题标题】:iOS: Localize the application independent of iPad Language settingiOS:独立于 iPad 语言设置本地化应用程序
【发布时间】:2023-04-03 17:15:01
【问题描述】:
我正在开发一个应用程序,我必须在应用程序中提供语言设置选项。我的问题是,如果我从 iPad 设置设置法语,然后如果我从应用设置设置日语,那么我的应用如何知道文本应该转换为日语?或者如何使我的应用设置独立于 iPad 设置。我可以使用本地化功能吗?或者我必须制定自己的逻辑来开发它。
在上述场景中使用本地化可以将文本转换为法语,但我的内部语言设置是日语。所以我想让它显示日文。
请在这方面给我建议。
【问题讨论】:
标签:
ios
iphone
objective-c
localization
internationalization
【解决方案1】:
如果您想在 iPad 语言设置更改时切换应用语言,请使用NSLocalizedString。
如果您希望应用语言独立于 iPad 语言设置,请使用 AMLocalizedString by aggressive-mediocrity
【解决方案2】:
我使用一个不错的宏 (#define) 来选择使用法语的本地化字符串:
#define LocalizedFR(...) NSLocalizedStringFromTableInBundle(__VA_ARGS__, nil, [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"]], @"")
然后我使用LocalizedFR('Cancel') 代替NSLocalizedString 以法语显示取消
当然你可以把“fr”改成任何语言,或者把它转换成一个函数,把语言代码作为参数传递。