1515 */
1616
1717#import " NSBundle+MXKLanguage.h"
18+ #import " GeneratedInterface-Swift.h"
1819
1920#import < objc/runtime.h>
2021
@@ -55,37 +56,37 @@ + (void)mxk_setLanguage:(NSString *)language
5556 [self setupMXKLanguageBundle ];
5657
5758 // [NSBundle localizedStringForKey] calls will be redirected to the bundle corresponding
58- // to "language"
59- objc_setAssociatedObject ([ NSBundle mainBundle ] ,
60- &_bundle, language ? [NSBundle bundleWithPath: [[ NSBundle mainBundle ] pathForResource: language ofType: @" lproj " ] ] : nil ,
59+ // to "language". `lprojBundleFor` loads this from the main app bundle as we might be running in an extension.
60+ objc_setAssociatedObject (NSBundle . app ,
61+ &_bundle, language ? [NSBundle lprojBundleFor: language] : nil ,
6162 OBJC_ASSOCIATION_RETAIN_NONATOMIC );
6263
63- objc_setAssociatedObject ([ NSBundle mainBundle ] ,
64+ objc_setAssociatedObject (NSBundle . app ,
6465 &_language, language,
6566 OBJC_ASSOCIATION_RETAIN_NONATOMIC );
6667}
6768
6869+ (NSString *)mxk_language
6970{
70- return objc_getAssociatedObject ([ NSBundle mainBundle ] , &_language);
71+ return objc_getAssociatedObject (NSBundle . app , &_language);
7172}
7273
7374+ (void )mxk_setFallbackLanguage : (NSString *)language
7475{
7576 [self setupMXKLanguageBundle ];
7677
77- objc_setAssociatedObject ([ NSBundle mainBundle ] ,
78- &_fallbackBundle, language ? [NSBundle bundleWithPath: [[ NSBundle mainBundle ] pathForResource: language ofType: @" lproj " ] ] : nil ,
78+ objc_setAssociatedObject (NSBundle . app ,
79+ &_fallbackBundle, language ? [NSBundle lprojBundleFor: language] : nil ,
7980 OBJC_ASSOCIATION_RETAIN_NONATOMIC );
8081
81- objc_setAssociatedObject ([ NSBundle mainBundle ] ,
82+ objc_setAssociatedObject (NSBundle . app ,
8283 &_fallbackLanguage, language,
8384 OBJC_ASSOCIATION_RETAIN_NONATOMIC );
8485}
8586
8687+ (NSString *)mxk_fallbackLanguage
8788{
88- return objc_getAssociatedObject ([ NSBundle mainBundle ] , &_fallbackLanguage);
89+ return objc_getAssociatedObject (NSBundle . app , &_fallbackLanguage);
8990}
9091
9192#pragma mark - Private methods
@@ -96,7 +97,7 @@ + (void)setupMXKLanguageBundle
9697 dispatch_once (&onceToken, ^{
9798
9899 // Use MXKLanguageBundle as the [NSBundle mainBundle] class
99- object_setClass ([ NSBundle mainBundle ], [ MXKLanguageBundle class ] );
100+ object_setClass (NSBundle . app , MXKLanguageBundle. class );
100101 });
101102}
102103
0 commit comments