Изменить язык Facebook программно IOS - PullRequest
0 голосов
/ 30 апреля 2018

Вот в чем дело: у меня есть кнопка для изменения текущего языка моего приложения. Это прекрасно работает, но мои социальные кнопки (такие как Google и Facebook) не меняют язык (GIDSignInButton, FBSDKLoginButton). Я думаю, что они получают текущий язык моего устройства в AppDelegate, но я не хочу возиться с перезапуском приложения или с делегатом приложения.

Любая рекомендация? Можно ли программно перезапустить систему facebook, чтобы снова получить язык?

Это мой метод setLanguage:

+ (void)setLanguage:(NSString *)language
{
    //if language not supported we default to spanish
    if (language == nil || ![SMLocalizedString isLanguageSupported:language]){
        //defaults to spanish
        language = @"es";
    }

    //Sotres new language setting in user preferences

    [SMLocalizedString updateCurrentLanguage:language];

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        object_setClass([NSBundle mainBundle], [BundleEx class]);
    });



    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:language, nil] forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    id value = language ? [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]] : nil;
    objc_setAssociatedObject([NSBundle mainBundle], &kBundleKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
...