Manobala Manobala - 1 month ago 38
iOS Question

FBSDKLikeControl title text not changing respect to device locale FBSDK ios

I have implemented the FBSDKLikeControl in my project and my expectations is 'like' and 'liked' text change to respected device locale(ar-AE). But locale is not changed as expected, it simply show the English text not arabic text for 'like' and '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];

Answer

Your coding part is correct,Added optional FacebookSDKStrings.bundle to provide localized strings for international apps, so you need to include the FacebookSDKStrings.bundle to your project and it works as expected for me,

The following are in FacebookSDKStrings.bundle en.lproj(FacebookSDK.string), so once you add this bundle it will automatically changes the locale based on the device language for share and like button

 /* 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";

Refer: Facebook change log for more details

Stack overflow link have more info