FBSDKLoginButton 标题本地化(iOS 项目)

FBSDKLoginButton title localization (iOS project)

我想在我的项目中本地化 FBSDKLoginButton 的标题字符串,其中包括 FBSDKLoginKit.framework。 facebook-ios-sdk 中有一个 FacebookSDKStrings.bundle,如 Facebook iOS 关于本地化的 SDK 常见问题解答中所述。

同样来自 FBSDKLoginButton and FBSDKInternalUtility 的源代码,我认为只要将该包放入我的项目中就可以正常工作吗?

但是将 FacebookSDKStrings.bundle 拖到我的项目中不起作用。其他解决方案?

(这是一个 Swift 项目,但我尝试过 Objective-C,同样的问题。Facebook SDK for iOS v4.5、4.7 已尝试,Xcode 7.0.1.)

我刚遇到这个问题。 Facebook 文档对本地化有点模糊,尤其是在使用 Cocoapods 时。

通过阅读 Facebook SDK 源代码,我找到了正确包含 Facebook 字符串文件的解决方案。

  1. 创建FacebookSDKStrings.bundle(只是重命名的文件夹)
  2. 在其中创建您的语言文件夹(例如:en.lproj & fr.lproj
  3. 在每个语言文件夹中创建一个名为 FacebookSDK.strings 的字符串文件
  4. 将包添加到您的项目中。

然后在每个 .strings 文件中添加要本地化的每一行。

我想 Facebook 会在某个地方提供所有密钥的详尽列表。但是,如果您使用的是 Cocoapods,则可以 Cmd-Shift-F 您要翻译的字符串(例如:"Log in with Facebook")在 Facebook SDK 源代码中找到类似

的内容
NSLocalizedStringWithDefaultValue(@"LoginButton.LogInLong", @"FacebookSDK", [FBSDKInternalUtility bundleForStrings],
                                           @"Log in with Facebook",
                                           @"The long label for the FBSDKLoginButton when the user is currently logged out");

显示相应的密钥:LoginButton.LogInLong

PS: here's the FacebookSDKStrings.bundle sample I just created.(当然是先解压)

我只是忘了将我的本地语言添加到项目设置 - 信息 - 本地化。我的错。将 FacebookSDKStrings.bundle 拖入项目即可。