29
29

More than 5 years have passed since last update.

[iOS] Facebook SDKのSSOボタンをローカライズする

Last updated at Posted at 2013-08-19

追記: 2016/12/15

この記事はFacebook iOS SDK バージョン3.5.3をもとに書かれており、現在では古い情報になっています。
今日時点でのFacebook iOS SDK最新版では、FacebookログインボタンはUIButtonのサブクラスとなっており、テキストの変更は容易になっています。(@mono0926 さんのコメントを参照)
最新版のSDKをご利用の場合は、公式ドキュメントを参照してください。
https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginButton/


ドキュメントを見つけられなくてハマッてしまったのでメモ。さっさとSDK付属のサンプルアプリを見ればよかった。。
 
やりたいのは単純に↓みたいにボタンのテキストを日本語にしたいだけ。
SS
 
 
Podfile

platform :ios, '6.1'
pod 'Facebook-iOS-SDK'


pod installした後に、 Info.plistFacebookAppID を追加。 
SS2
 
で、

ViewController.h
//
//  ViewController.h
//  FBSample
//

#import <UIKit/UIKit.h>
#import <FacebookSDK/FacebookSDK.h>

@interface ViewController : UIViewController <FBLoginViewDelegate>
@end
ViewController.m
//
//  ViewController.m
//  FBSample
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    FBLoginView *loginBtn = [[FBLoginView alloc] initWithFrame:CGRectMake(
                                                                          self.view.frame.size.width / 2 - 154,
                                                                          self.view.frame.size.height / 2 - 22,
                                                                          308,
                                                                          44)
                             ];
    loginBtn.readPermissions = @[@"basic_info"];
    loginBtn.delegate = self;
    [self.view addSubview:loginBtn];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

 
のように FBLoginView を追加すると、シングルサインオンボタン(SSOボタン)が表示される。英語テキストで。
 
SS3
 
英語テキストの方がかっこいいのでまったくもってこのままでいいんだけど、まー仕事だとそうもいかないので、これを日本語テキストに変更する。

[loginBtn.label setText:@"Facebookログイン"];

とかできてもよさそうなのに、そんなメソッドは用意されていなくて、 Settings Bundleを追加してそこで上書かないといけない。
 
Facebookのサンプルアプリ Scrumptiousから FacebookSDKOverrides.bundle をコピーして Info.plist を編集。
FacebookBundleNameFacebookSDKOverrides を設定する。
 
SS4
 
コンソールで
cp -r FacebookSDKOverrides.bundle/en.lproj FacebookSDKOverrides.bundle/ja.lproj
 
あとは FacebookSDKOverrides.bundle/ja.lproj/Localizable.strings を以下のように編集すれば晴れて日本語化される。

/* FBLoginView (aka FBLV) */
"FBLV:LogOutButton" = "ログアウト";
"FBLV:LogInButton" = "Facebookでログイン";
"FBLV:LoggedInAs" = "%@ でログイン中";
"FBLV:LoggedInUsingFacebook" = "Facebookでログインしました";
"FBLV:LogOutAction" = "ログアウト";
"FBLV:CancelAction" = "キャンセル";

 
Localizations の追加もお忘れなく。

SS5

29
29
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
29