这是一个在运行时允许语言切换的本地化系统。支持代码字符串(NSLocalizedString)和故事板(基本国际化)。
要尝试示例项目,只需运行以下命令
pod try DJLocalization
需要 iOS 6 或更高版本。
DJLocalization 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "DJLocalization"
对于 Swift,使用
pod "DJLocalization/Swift"
重要注意事项:如果您项目没有使用 ARC,您必须在目标设置 > 编译设置 > 编译源中为 'DJLocalization' 中的所有文件添加 -fobjc-arc
编译器标志。
DJLocalization/DJlocalization
文件夹拖放到您的项目中。然后简单地添加以下导入到您的预处理头文件中,或者任何您使用 NSLocalizedString 宏(或变体)的文件中。
@import DJLocalization;
您必须在任何使用 NSLocalizedString 宏的地方导入此头文件,因为此头文件将替换默认的 NSLocalizedString 宏以自定义宏。如果您不这样做,则语言的运行时切换将不起作用。
使用您正常的本地化工作流程,一切都应正常工作。对于代码字符串使用 NSLocalizedString
,对于故事板使用基本国际化。
如前所述,如果首先包括正确的头文件,NSLocalizedString
将只正确工作。如果您想获得更多安全性,库提供了额外的宏 DJLocalizedString
,它们提供与被覆盖的 NSLocalizedString
宏相同的功能。这样,如果您忘记包括头文件,则会收到编译错误。
在运行时,您可以通过设置语言属性在任何时候切换语言
[DJLocalizationSystem shared].language = @"en";
请小心使用语言代码(en、nl、fr 等)进行项目中的本地化。
视图在加载时进行翻译。这意味着如果您在某处切换语言,只有随后加载的视图将具有正确的语言字符串。理想情况下,当您切换语言时,您应该将导航控制器弹出到其根视图控制器。
DJLocalization 由 David Jennes 提供。代码灵感来自 Rolandas Razma 使用 RRBaseInternationalization 的工作(特别是为 storyboard/xib 视图加载字符串的方式)。
感谢 Rolandas Razma
DJLocalization 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。