komeの備忘録

東大理系大学院生の技術ブログ。たまに趣味。

オンライン決済サービスStripeを日本語仕様にする

現在急成長中のオンライン決済サービスStripeを使いやすく変更した設定メモ。

f:id:komee:20180522154106j:plain

環境
Xcode 9.2
Swift 4.0

目次

Stripeとは

冒頭にも述べたが、Stripeはオンライン決済サービスである。

stripe.com

StripeはiOS、web、Androidでのオンラインクレジットカード決済機能を提供していて、SDKが比較的使いやすいく、スタートアップのプロダクト開発などでは強い味方になるサービスである。。

最近ではJCBの決済に正式対応し、非常に流行ってきている。

参考記事

japan.cnet.com

Xcode初心者が手を出した時につまづくポイントとして、Stripeの提供するUIを使った時に、カード情報入力画面やカード追加画面をどうやったら日本語にカスタマイズできるのかというのがある。というか私が躓いた。 (私が本当にXcode初心者というだけかもしれない...)

初期の設定では下の図のように、英語で表示されてしまう。 f:id:kaz02251994:20180522023516p:plain

日本語変換方法

StripeのiOS SDKには、 STPaymentMethodsViewControllerが、備え付けのカード情報処理UIとして提供されている。

これはもちろん、先にも述べたとおりデフォルトだと全て英語になっており、日本語でのサービス展開はこのままだと少々厳しい。

これをローカライズするには、Stripeの設定ではなく、Xcodeの方で日本語ローカライズ設定すると変換されるようになる。

f:id:kaz02251994:20180522023823p:plain

チェックポイントは、次の2つである。

  1. プロジェクトのInfo部分で、Use Base Internationalization がONになっていること
  2. Localization の中で+ボタンを押し、Japaneseを追加すること

これでビルドすると、下の図のように日本語設定が自動で反映され、英弱な日本人でもStripeを使えるようになる。幸せ。

f:id:kaz02251994:20180522024123p:plain

まとめ

Stripeの日本語設定は、Stripeの設定ではなく、Xcodeの日本語設定が反映される。

余談: Use Base Internationalizationってなんだ?

これは、localizable.stringというファイルにEnglish to any language の対応表を定義して、Baseファイルを元に色々な言語にローカライズする仕組みのこと。
もちろんSDKでこれをやるにはSDKの方が対応していないとできないことになる。
Stripeは幸い、日本語対応がSDKできちんとされているので特に何も気にせずローカライズして大丈夫だった、ということ。

他のサービスを用いたときに日本語設定が反映されないときは、これらのチェックポイントを参考にし、最後にはSDKが日本語に対応しているかを確認しよう!