React Native fbsdk:如何修改Facebook登录按钮的语言/本地化?
解决Facebook登录按钮读取es_LA本地化字符串的问题
我来帮你搞定这个问题!既然你的设备已经设置为es_LA区域,但登录按钮还是默认显示英文的"Continue with Facebook",可以按下面的步骤来配置:
1. 确认项目已添加西班牙语(拉丁美洲)本地化
打开Xcode,选中你的项目Target,进入Info标签页:
- 找到Localizations板块,检查是否已经添加了
Spanish (Latin America)(对应es_LA) - 如果没有,点击
+号添加该语言,勾选需要本地化的资源文件(确保包含Facebook相关的bundle资源)
2. 验证FacebookSDKStrings.bundle的本地化结构
打开FBSDK文件夹里的FacebookSDKStrings.bundle:
- 确认里面存在
es_LA.lproj子文件夹 - 打开该文件夹下的
Localizable.strings,检查是否有对应翻译:
如果没有,你可以手动添加这条翻译(或者升级SDK到包含该翻译的版本)"Continue with Facebook" = "Continuar con Facebook";
3. 强制应用遵循系统区域设置(可选,若前两步无效)
有时候应用会被固定为特定语言,你可以在启动代码里重置语言设置:
Swift(AppDelegate/SceneDelegate)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 清除自定义语言设置,让应用跟随系统 UserDefaults.standard.removeObject(forKey: "AppleLanguages") UserDefaults.standard.synchronize() return true }
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; return YES; }
4. 清理缓存并重建项目
- 按下
Cmd+Shift+K清理项目缓存 - 删除模拟器/设备上的应用
- 重新编译运行,查看按钮文本是否更新
如果还是不行,建议检查你的Facebook SDK版本,旧版本可能缺少es_LA的本地化资源,升级到最新版的SDK应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Jk33
相关产品推荐
相关产品推荐

