FBLoginView
按钮中的文本,但迄今为止没有成功。我尝试阅读来自FacebookSDK
的README并在互联网上搜索。我在项目本地化部分添加了两种语言,它会为每种语言创建两个支持文件,但我尝试使用README的示例内容(更改字符串值)更改那里的字符串,但即使我更改英文文件,我仍然得到默认的登录字符串。
然后我尝试添加一些Bundle设置和更改其中的一些文件,但仍然没有运气。有人能告诉我如何逐步实现更改facebook字符串吗?谢谢FBLoginView
按钮中的文本,但迄今为止没有成功。我尝试阅读来自FacebookSDK
的README并在互联网上搜索。我在项目本地化部分添加了两种语言,它会为每种语言创建两个支持文件,但我尝试使用README的示例内容(更改字符串值)更改那里的字符串,但即使我更改英文文件,我仍然得到默认的登录字符串。
然后我尝试添加一些Bundle设置和更改其中的一些文件,但仍然没有运气。有人能告诉我如何逐步实现更改facebook字符串吗?谢谢更新:
本文介绍的方法已经不适用于最新的Facebook SDK。请参考@Erik van der Neut或@Ted提供的答案,并使用随SDK一起发布的bundleFacebookSDKStrings.bundle进行字符串覆盖。
到目前为止,我找到的唯一本地化/更改Facebook字符串的方法在他们的FAQ中有描述:https://developers.facebook.com/docs/ios/troubleshooting/
我的做法是从Facebook SDK附带的Scrumptious示例项目中复制 FacebookSDKOverrides.bundle
文件。它基本上只是一个包含(可以包含)不同本地化文件夹的软件包。如果您想添加德语字符串,则应在bundle中创建一个名为de.lproj
的文件夹。此文件夹应包含一个名为Localizable.strings
的文件。
您可以在文件FacebookSDKResources.bundle.README
中找到所有可重写字符串的列表。您可以在FacebookSDK文件夹中找到它:
FacebookSDK.framework/Resources/
或者在这里:https://github.com/facebook/facebook-ios-sdk/blob/master/src/FacebookSDKResources.bundle.README
例如,要添加登录按钮文本的德语翻译,您需要将以下内容添加到de.lproj文件夹中的Localizable.strings文件中:
"FBLV:LogInButton" = "Einloggen";
作为最后一步,你需要确保Facebook知道这个捆绑包的存在。因此,你可以将以下内容添加到你的Info.plist文件中:
作为最后一步,您需要确保 Facebook 知道该捆绑包的存在。因此,您可以将以下内容添加到 Info.plist 文件中:
<key>FacebookBundleName</key>
<string>FacebookSDKOverrides</string>
如果您希望的话,您也可以在代码中指定这个:
[FBSettings setResourceBundleName:@"FacebookSDKOverrides"];
这对我起了作用,尽管我想使用我的主包进行覆盖,并仅在我的普通应用翻译中指定它们。这对于连接翻译工具更方便,因为您不需要为每种语言翻译多个文件。
自Facebook SDK 4.9起
如果您已下载Facebook SDK,则有一个名为"FacebookSDKStrings.bundle"的捆绑包。
FacebookSDKStrings.bundle
(v4.2)替换了所有的Facebook消息 - 我只是删除了原始的FacebookSDKOverrides.bundle
并将整个bundle FacebookSDKStrings.bundle
包括其中的资源子文件夹放入我的项目中,更新了我的项目.plist文件指向它,这样所有的Facebook字符串就再次被本地化了。/* The long label for the FBSDKLoginButton when the user is currently logged out */
"LoginButton.LogInLong" = "Log in with Facebook";
我只是从你想要的语言文件夹(如fr.lproj)中复制了“FacebookSDK.strings”中的所有字符串到我的项目Localizable.strings(法语)中...这种方法对我有效...