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

Standard

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

20130819-01

 
 
Podfile

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

pod install

した後に、Info.plistにFacebookAppIDを追加。 
20130819-02

20130819-02

 
で、
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ボタン)が表示される。英語テキストで。
 
20130819-03

20130819-03

 
英語テキストの方がかっこいいのでこのままでいいんだけど、まー仕事だとそうもいかないので、これを日本語テキストに変更する。

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

とかできてもよさそうなのに、そんなメソッドは用意されていない。Settings Bundleを追加してそこで上書かないといけない。
 
Facebookのサンプルアプリ ScrumptiousからFacebookSDKOverrides.bundleをコピーしてInfo.plistを編集。FacebookBundleNameFacebookSDKOverridesを設定する。
 
20130819-04

20130819-04

 
コンソールで

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の追加もお忘れなく。

20130819-05

20130819-05

Facebook comments:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>