茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

Xcode コードからローカライズする方法

コード内で文字をローカライズする方法を紹介していきます。

※Stroyboard からローカライズの場合はこちら

作業を大まかに分けると、

  1. Project -> Info -> LocalizationsでJapanese(ja)を追加
  2. 追加時に表示されるダイアログのStoryBoardとLaunchScreenにチェックをつける
  3. Localizable.strings を作成
  4. File inspectorからLocalization をクリックし、Base, Japanese にそれぞれチェック
  5. それぞれの文字列を定義
  6. コードから文字列を取得

このようになります。それでは細かく見ていきましょう。


日本語を追加

Project → Info → Localizetionsから
Japaneseを追加

f:id:biwako_no_otyazuke:20161211114919p:plain


チェックはつけたまま

Japanese を追加すると、ダイアログが表示されるので、チェックはつけたままにします。

f:id:biwako_no_otyazuke:20161211115606p:plain

これで、日本語が追加されています。

f:id:biwako_no_otyazuke:20161211115622p:plain


Localizable.strings を追加

strings ファイルを追加するのですが、この時ファイル名は必ず、Localizable.strings にしましょう。
僕は違う名前にしてて、うまくいかずに1時間悩んでました。汗


Base, Japanese を追加

Localizable.strings を選択し、File inspectorからLocalization をクリックし、Base, Japanese にそれぞれチェックします。
Base は英語のことですね。
チェックすると、下のようにそれぞれファイルができていると思います。

f:id:biwako_no_otyazuke:20161211120206p:plain


それぞれの文字列を定義

Base, Japanese ファイルそれぞれに文字列を定義していきます。
定義の形式は
"key" = "value"; です。
最後の ; を忘れないように気をつけてください。

f:id:biwako_no_otyazuke:20161211120429p:plain


コードから文字列の取得

それでは、定義した文字列を取得し、表示していきましょう。

f:id:biwako_no_otyazuke:20161211120554p:plain

NSLocalizedString("localize", comment: "")
これで文字列を取得することができます。
またここでは、ラベルの接続などの説明は省きます。


ここまでできたら、シミュレータの言語を変更し、それぞれ見てみます。

Base f:id:biwako_no_otyazuke:20161211120748p:plain

Japanese

f:id:biwako_no_otyazuke:20161211120808p:plain

ローカライズできました!!