FBSDKLoginButton标题本地化(iOS项目)

时间:2015-11-05 09:34:25

标签: xcode7 facebook-ios-sdk

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

同样来自FBSDKLoginButtonFBSDKInternalUtility的源代码,我认为应该通过将该捆绑包放在我的项目中来工作吗?

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

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

2 个答案:

答案 0 :(得分:4)

我忘了将我的本地语言添加到项目设置 - 信息 - 本地化。我的错。将FacebookSDKStrings.bundle拖到项目中就行了。

答案 1 :(得分:1)

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

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

  1. 创建FacebookSDKStrings.bundle(只是重命名的文件夹)
  2. 在其中创建您的langage文件夹(例如:en.lproj& fr.lproj
  3. 在每个语言文件夹中创建名为FacebookSDK.strings的字符串文件
  4. 将捆绑包添加到项目中。
  5. 然后在每个.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.(当然先解压缩)