8

我已经在我的项目中实现了FBSDKLikeControl,并且我的期望是“喜欢”和“喜欢”文本更改为尊重设备区域设置(ar-AE)。但区域设置没有像预期的那样改变,它只是简单地显示英文文本,而不是像'喜欢'和'喜欢'的阿拉伯文字。FBSDKLikeControl标题文本不改变对设备区域设置的尊重FBSDK ios

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编程

+0

你能证明你的代码 –

回答

1

你的编码部分是正确的,增加了可选FacebookSDKStrings.bundle为国际应用本地化的字符串,所以你需要包括FacebookSDKStrings.bundle到您的项目和它的作品如预期对我来说,

以下是在FacebookSDKStrings.bundle en.lproj(FacebookSDK.string),所以一旦你添加此捆绑,将基于对喜欢并分享按钮

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

+1

是的,你是正确的@balakrishnan Mac,更改日志清楚地提到了它的可选项,所以我们需要将此添加到项目捆绑包中,无论该应用程序是否使用国际本地,现在其工作如预期般,谢谢大量 – Manobala

2

下面是关于如何实现自己翻译一些迹象表明:

iOS Facebook SDK localization

搜索以后这里:https://developers.facebook.com/docs/internationalization#locales

您可以找到包含语言环境信息的Facebook XML文件(https://www.facebook.com/translations/FacebookLocales.xml

事实证明,他们使用ar_AR只为阿拉伯语,而不是ar_AE,可能是这个原因。

+1

在最后一行你的堆栈溢出链接有这个答案,但我thougt其FBSDK定位链接,我skiped它previosly非常感谢 – Manobala

+0

是你的权利@manobala,我也有同样的想法,它的FB开发者页面链接,如果我注意到之前我可以编辑这个答案或只是发布更改日志链接,好的工作yann kaiser,继续:) –

+0

可以建议如何设置FBLikeButton的区域编程 – Manobala