代码之家  ›  专栏  ›  技术社区  ›  Manobala

FBSDKLike控件标题文本不会更改与设备区域设置FBSDK ios相关的内容

  •  9
  • Manobala  · 技术社区  · 8 年前

    我已经在我的项目中实现了FBSDKLikeControl,我的期望是将“喜欢”和“喜欢”文本更改为受尊重的设备语言环境(ar AE)。但语言环境并没有按预期改变,它只是显示英文文本,而不是“like”和“liked”的阿拉伯语文本。

    self.buttonFBLike = [[FBSDKLikeControl alloc] init];
    self.buttonFBLike.center=self.view.center;
    self.buttonFBLike.likeControlStyle=FBSDKLikeControlStyleBoxCount;
    [self.view addSubview:self.buttonFBLike]
    // Share url like @"https://www.facebook.com/FacebookDevelopers"
    [self.buttonFBLike setObjectID:shareURL];
    self.buttonFBLike.enabled=YES;
    [self.buttonFBLike isTouchInside];
    

    有人能建议我如何以编程方式设置FBLikeButton的语言环境吗

    2 回复  |  直到 8 年前
        1
  •  2
  •   Community kfsone    7 年前

    以下是关于如何实现您自己的翻译的一些指示:

    iOS Facebook SDK localization

    在此处搜索后: https://developers.facebook.com/docs/internationalization#locales

    您可以找到包含区域设置信息的Facebook XML文件( https://www.facebook.com/translations/FacebookLocales.xml )

    事实证明,他们使用 ar(_ar) 只有阿拉伯语,而不是

        2
  •  1
  •   Community kfsone    7 年前

    您的编码部分是正确的,添加了可选的FacebookSDKStrings。bundle为国际应用程序提供本地化字符串,因此您需要包括FacebookSDKStrings。捆绑到您的项目中,它对我来说就像预期的那样工作,

    以下是FacebookSDKStrings中的内容。bundle-en.lproj(FacebookSDK.string),因此一旦您添加了这个bundle,它将根据共享和类似按钮的设备语言自动更改语言环境

     /* The format string for device login instructions */
    "DeviceLogin.LogInPrompt" = "Visit %@ on your smartphone or computer and enter the above code.";
    
    /* The title of the label to dismiss the alert when presenting user facing error messages */
    "ErrorRecovery.Alert.OK" = "OK";
    
    /* The title of the label to decline attempting error recovery */
    "ErrorRecovery.Cancel" = "Cancel";
    
    /* The fallback message to display to recover invalidated tokens */
    "ErrorRecovery.Login.Suggestion" = "Please log into this app again to reconnect your Facebook account.";
    
    /* The title of the label to start attempting error recovery */
    "ErrorRecovery.OK" = "OK";
    
    /* The fallback message to display to retry transient errors */
    "ErrorRecovery.Transient.Suggestion" = "The server is temporarily busy, please try again.";
    
    /* The label for the FBSDKLikeButton when the object is not currently liked. */
    "LikeButton.Like" = "Like";
    
    /* The label for the FBSDKLikeButton when the object is currently liked. */
    "LikeButton.Liked" = "Liked";
    
    /* The label for the FBSDKLoginButton action sheet to cancel logging out */
    "LoginButton.CancelLogout" = "Cancel";
    
    /* The label for the FBSDKLoginButton action sheet to confirm logging out */
    "LoginButton.ConfirmLogOut" = "Log Out";
    
    /* The fallback string for the FBSDKLoginButton label when the user name is not available yet */
    "LoginButton.LoggedIn" = "Logged in using Facebook";
    
    /* The format string for the FBSDKLoginButton label when the user is logged in */
    "LoginButton.LoggedInAs" = "Logged in as %@";
    
    /* The short label for the FBSDKLoginButton when the user is currently logged out */
    "LoginButton.LogIn" = "Log in";
    
    /* The long label for the FBSDKLoginButton when the user is currently logged out */
    "LoginButton.LogInLong" = "Log in with Facebook";
    
    /* The label for the FBSDKLoginButton when the user is currently logged in */
    "LoginButton.LogOut" = "Log out";
    
    /* The user facing error message when the app slider has been disabled and login fails. */
    "LoginError.SystemAccount.Disabled" = "Access has not been granted to the Facebook account. Verify device settings.";
    
    /* The user facing error message when the Accounts framework encounters a network error. */
    "LoginError.SystemAccount.Network" = "Unable to connect to Facebook. Check your network connection and try again.";
    
    /* The user facing error message when the device Facebook account password is incorrect and login fails. */
    "LoginError.SystemAccount.PasswordChange" = "Your Facebook password has changed. To confirm your password, open Settings > Facebook and tap your name.";
    
    /* The user facing error message when the device Facebook account is unavailable and login fails. */
    "LoginError.SystemAccount.Unavailable" = "The Facebook account has not been configured on the device.";
    
    /* The user facing error message when the Facebook account signed in to the Accounts framework becomes unconfirmed. */
    "LoginError.SystemAccount.UnconfirmedUser" = "Your account is not confirmed. Please log in to www.facebook.com and follow the instructions given.";
    
    /* The user facing error message when the Facebook account signed in to the Accounts framework has been checkpointed. */
    "LoginError.SystemAccount.UserCheckpointed" = "You cannot log in to apps at this time. Please log in to www.facebook.com and follow the instructions given.";
    
    /* The message of the FBSDKLoginTooltipView */
    "LoginTooltip.Message" = "New! You're in control - choose what info you want to share with apps.";
    
    /* Title of the web dialog that prompts the user to log in to Facebook. */
    "LoginWeb.LogInTitle" = "Log In";
    
    /* The label for FBSDKSendButton */
    "SendButton.Send" = "Send";
    
    /* The label for FBSDKShareButton */
    "ShareButton.Share" = "Share";
    

    参考: Facebook change log for more details

    Stack overflow link have more info