LoginSignup
15
12

More than 3 years have passed since last update.

コードを書かずにStoryboardで多言語対応

Last updated at Posted at 2019-09-24

Xcode開発における多言語対応については記事はいろいろありますが、この記事では極力コードを書かずStoryboardで多言語対応する方法について説明します。

0. 環境

Xcode 11.0

1. プロジェクト自体の多言語対応手順

PROJECTのInfo - Localizationから、Japaneseを追加します。
※今回は英語をデフォルト言語とし、日本語を追加した場合を想定します。
1-1 marked.png
1-2 trimmed.png

これにより選択したstoryboardには.stringsファイル(日本語での表示文字列を記述するためのファイル)が生成されます。
- .storyboardファイル:英語を記述
- .stringsファイル:日本語を記述(書き方は 「2. Storyboardを更新したときの多言語対応手順」参照)
とすれば多言語対応は完了です。

ただ.stringsファイルのUI要素の指定の仕方が特殊で、UIの種類によって指定すべきキーが変わってきます。
UI要素を追加したときにそのキーを調べて手打ちするのは手間なので、そうしたケースでのコツを以下で説明します。

2. Storyboardを更新したときの多言語対応手順

一旦Japaneseのチェックを外します。
このときに確認ダイアログが表示されることがありますが、"Remove"を選びます(つまりこれまでの.stringsファイルは削除されるので、要バックアップです)。

そしてJapaneseに再度チェックを入れます。
出てきたダイアログで"Replace file"を選ぶと、storyboardの内容に基づいてstringsファイルが再生成されます。
2-1.png
2-3 trimmed.png
2-4 trimmed.png

上の画像の例で言えば
"cgO-CO-O4B.text": UILabelの表示文字列
"qY6-pH-68Q.normalTitle": UIButtonの表示文字列
となっているので、これらの右辺に好きな日本語を指定すれば良いわけです(下のコードでは自動生成されたコメントを省略しています)。

"cgO-CO-O4B.text" = "こんにちは!";
"qY6-pH-68Q.normalTitle" = "ボタン";

UI要素を追加した場合はこのやり方が良いですが、追加がない場合であれば.stringsファイルを直接編集する方が簡単ですね。

3. Storyboardを追加したときの多言語対応手順

Localizeから、まずはBaseを選び、その後でJapaneseにチェックを入れて追加します。
あとはこれまでと同様ですね。
3-1.png

4. 多言語対応の動作確認

シミュレータ(もしくは実機)の言語設定を切り替えることで、アプリの英語・日本語表示が切り替わることを確認できます。

15
12
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
15
12