ios - 以编程方式更改 Facebook 的语言 IOS
问题描述
事情就是这样:我有一个用于更改应用程序当前语言的按钮。这非常有效,但是我的社交按钮(例如 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);
}
解决方案
推荐阅读
- reactjs - useRef “指的是一个值,但在这里被用作一个类型。”
- laravel - SQLSTATE [42S02]:未找到基表或视图:1146 表 'blog.posts' 不存在
- git - .gitignore 不会忽略具有某些扩展名的文件
- vue.js - 使用 nuxt-link 导航到不同页面上的锚点/哈希导致问题
- python - Python object.__getattribute__ 覆盖后行为不正确
- regex - 连接字符串并删除多余的逗号
- python - 使用错误“数组索引过多”对 numpy 数组进行切片
- r2d3 - 将 r2d3 的 JavaScript 控制台输出渲染到浏览器控制台而不是可视化?
- javascript - setTimeout 定时器值可以扩展
- r - 如何处理加载 rdata 文件的错误?