swiftでの多言語対応に関する記事です。
環境(以下の環境で動作確認をしています)
- OSX Yosemite 10.10.5
- Xcode7.2.1
目次
- リソースとは
- 多言語対応とは
- 多言語設定の手順
リソースとは
リソースとは資源という意味で、アプリケーション開発においては、アプリケーションが利用するデータのことを意味し、画像ファイル、音声ファイル、文字列データなど様々な形式のデータを指します。
多言語対応とは
iOSには、異なる言語における表示をサポートするための機能が用意されており、文字列データをユーザの端末の言語情報にあわせて切りかえる事ができます。
多言語設定の手順
1. Project に Localization の設定
「Project」->「info」->「Localizations」と選択してから、「+」を押してロケール情報を追加します。日本語を登録するのであれば、Japanese(ja)を選びます。
2. Localizable.strings ファイルの作成
アプリ画面に対応するローカライズには Localizable.strings ファイルを新たに作成する必要があります。Fileメニューから新規作成を選び、「iOS」->「Resource」->「Strings File」で Localizable.strings の名前のファイルを作り、プロジェクトに追加します。
作成した Localizable.strings ファイルを選択して「file inspector」を見ると「Localization」の項目があるので、「Localize」ボタンを押し、「Japanese」を選択します。
続いて、「file inspector」で「English」と「Japanese」にチェックを入れると Localization.strings ファイルに新たに2つのファイルが自動で作成されます。
作成された Localizable.strings ファイルを開いて、それぞれに「”key名” = “値”;」の形式で key と value を設定します。
Localizable.strings(English) のファイル
“test” = “English”;
Localizable.strings(Japanese) のファイル
“test” = “日本語”;
3. プログラムで文字列を取得
プログラムから、「strings」ファイルの値を取得する NSLocalizedString(key, comment)メソッドを呼び出します。
1 2 3 4 5 6 7 8 9 |
import UIKit class ViewController:UIViewController { override func viewDidLoad(){ super.viewDidLoad() print(NSLocalizedString("test",comment:"")) } } |
実機または、シミュレータで「設定」「一般」「言語環境」で English を選択し、その設定でアプリを起動すると以下のように表示されます。
図 Localizable 英語
同様に言語情報を日本語に変えて起動すると以下のように表示されます。
図 Localizable 日本語