>100 Views
May 17, 14
スライド概要
Xcode 5 でローカライズを設定する方法の総ざらいです。
プロジェクトがサポートする言語を登録する方法から、文字列、アプリアイコン、画面デザインのローカライズの仕方の基本を順を追って紹介しています。ローカライズの設定周りを調整する上での注意点についても触れています。
※ Docswell での公開に移行する直前の Slideshare での閲覧数は 7,234 でした。
正統派趣味人プログラマー。プログラミングとは幼馴染です。
Xcode 5 ローカライズ処⽅方箋 〜~ Xcode 5 再⼊入⾨門 〜~ EZ-‐‑‒NET 熊⾕谷友宏 @es_̲kumagai http://program.station.ez-‐‑‒net.jp/
⾃自⼰己紹介 EZ-‐‑‒NET 熊⾕谷友宏 http://program.station.ez-‐‑‒net.jp/ @es_̲kumagai EZ-‐‑‒NET IP Phone ⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for iPad いつもの電卓 for iPhone
余談ですが アイデア 投⼊入! @takaaki024 さん EZ-‐‑‒NET IP Phone ⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for iPad いつもの電卓 for iPhone
先⽉月末から販売開始 道具としての Xcode という視点で書きました。 • • • • • • • • • おかげさまで好調なスタート Xcode 全機能を紹介 プロジェクトの作り⽅方 ソースコード編集の効率率率化 ショートカットキーの紹介 オートレイアウトの使い⽅方 ローカライズの設定⽅方法 バージョン管理理の使い⽅方 ビルド設定とスキーム設定 とにかくいろいろ 「特設 Web 資料料館」も公開中 http://ez-‐‑‒net.jp/sp/xcode5/
Xcode 5 ローカライズ処⽅方箋 ローカライズに関係する機能の総ざらい
はじめに ローカライズって? 表⽰示する⽂文字列列やレイアウトを ⾔言語環境に応じて切切り替える機能
たとえば こんなのとか、
たとえば こんなのとか。
Section 1 サポートする⾔言語を プロジェクトに登録する
⾔言語を登録するには 1. プロジェクト設定で⾔言語を追加 2. ファイル毎に対応⾔言語を設定
サポートする⾔言語の登録 プロジェクトの Info 設定で登録
ファイル単位で有効化 ファイル毎にローカライズを設定可能
ファイル単位で有効化 ローカライズを設定すると ⾔言語毎に別々のファイルが作られます。
ところで … Base という⾔言語。
Section 2 Base Internationalization アプリに既定の⾔言語を設定して それを基本にローカライズを管理理する
Base Internationalization Base Internationalization の 有効化 というか注意点
Base Internationalization 無効化できません 😦 というかしないで下さい
Base Internationalization 無効化したが最期 チェックを⼊入れられなくなります 😨 (Xcode 5.1)
Base Internationalization チェックボックスを 押してしまったら 😱
Base Internationalization まだ、間に合います。 慌てずに Cancel して下さい。
Base Internationalization 改めて …
Base Internationalization 既定の⾔言語を設定する
既定の⾔言語を設定する 既定の⾔言語 1. 2. 3. 4. 既定の⾔言語を Info.plist に設定 (Info 設定の Localizations と無関係に設定) Base ⾔言語としてローカライズ 実⾏行行時の⾔言語環境が 既定の⾔言語と⼀一致したときに採⽤用 ⾔言語環境と同じ⾔言語の ローカライズがあればそちらを優先
既定の⾔言語をプロジェクトに設定 既定の⾔言語の設定は ターゲット設定の Info (Info.plist) にある “Localization native development region” で設定
既定の⾔言語をプロジェクトに設定 リストからは選択できません 😰
既定の⾔言語をプロジェクトに設定 プロジェクト設定で選択できるリストの 括弧内の表記を⼊入⼒力力するのが適切切(たぶん)
Base ⾔言語としてローカライズ 既定の⾔言語⽤用のローカライズデータは Base ⾔言語⽤用のファイルに記載
既定の⾔言語と⼀一致したときに採⽤用 Localization native development region ja 既定の⾔言語と⼀一致! ➡ Base の設定を採⽤用
⾔言語環境と同じ⾔言語のローカライズを優先 Localization native development region ja 既定の⾔言語と⼀一致! ➡ Japanese があれば Japanese の設定を優先
⾔言語環境に対応する⾔言語がない場合 既定の⾔言語にもローカライズ設定にも 該当しない場合は … ➡ 最近に設定された⾔言語から優先して ⼀一致するものを採⽤用
Base ⾔言語は … あくまでも Info.plist で指定した⾔言語 特別扱いはされない様⼦子 ⾔言語環境と⼀一致するローカライズが 無いときに無条件で採⽤用されるものではない
Base ⾔言語 要点 ̶— 捉え⽅方 ̶— Base ⾔言語 =$(CFBundleDevelopmentRegion); Localization native development region
Section 3 実⾏行行環境に応じて ⽂文字列列をローカライズ
⽂文字列列をローカライズするには 1. ⾔言語毎に⽂文字列列テーブルを⽤用意 2. ⽂文字列列テーブルから⽂文字列列を取得
⽂文字列列をローカライズする (1/2) 最もよくある例例 Localizable.strings を使って ローカライズする
⾔言語毎に⽂文字列列テーブルを⽤用意 Localizable.strings
⾔言語毎に⽂文字列列テーブルを⽤用意 ⾔言語毎に内容を記載 ⽂文字列列テーブルの書式は … “Key” = “Value”;
⾔言語毎に⽂文字列列テーブルを⽤用意 NSLocalizedString マクロを使って取得
⽂文字列列をローカライズする (2/2) もうひとつの例例 任意の⽂文字列列テーブルを使って ローカライズする
⾔言語毎に⽂文字列列テーブルを⽤用意 任意の⽂文字列列テーブル
⾔言語毎に⽂文字列列テーブルを⽤用意 NSBundle クラスの -‐‑‒localizedStringForKey:value:table: で取得 value が nil または @”” の場合は ⽂文字列列テーブルに無いキーはそのまま使⽤用
Section 4 実⾏行行環境に応じて アプリ名をローカライズ
⽂文字列列をローカライズするには 1. InfoPlist.strings を⽤用意 2. CFBundleDisplayName で ⾔言語毎にアプリ名を設定
⾔言語毎に InfoPlist.strings を⽤用意 InfoPlist.strings
⾔言語毎に InfoPlist.strings を⽤用意 アプリの表⽰示名を CFBundleDisplayName に設定
⾔言語毎に InfoPlist.strings を⽤用意 これで完成
Section 5 実⾏行行環境に応じて Storyboard をローカライズ NIB ファイルも OK
Storyboard をローカライズするには 1. Storyboard ファイルに ローカライズの仕⽅方を設定 2. Base ⾔言語でデザインを設計 3. デザイン内のテキストを ⾔言語毎に⽂文字列列テーブルで指定 ⾔言語によってデザインを 変えることも可能
Storyboard にローカライズの仕⽅方を設定 普段通りに対応する⾔言語を指定 このとき Base 以外の⾔言語で ローカライズ⽅方法を選択できる
Storyboard にローカライズの仕⽅方を設定 既定では Base ⾔言語だけが Storyboard で その他の⾔言語は⽂文字列列ファイル
Storyboard にローカライズの仕⽅方を設定 これで … デザインを全⾔言語で共⽤用し テキストを⾔言語毎に設計可能に Base Internationalization 独⾃自の設計⽅方法
Storyboard にローカライズの仕⽅方を設定 Base とその他を別形式で設計
Storyboard にローカライズの仕⽅方を設定 ⽂文字列列ファイルで指定する ID は 属性インスペクターの Object ID
Storyboard にローカライズの仕⽅方を設定 ⾔言語によって 異異なるデザインにしたいときは Xcode 5 より前とよく似たデザイン⽅方法
Storyboard にローカライズの仕⽅方を設定 ローカライズ⽅方法を切切り替えることで …
Storyboard にローカライズの仕⽅方を設定 Base 以外の⾔言語でも Storyboard によるデザイン設計が可能に
Storyboard にローカライズの仕⽅方を設定 こんな⾵風に ボタンの位置を変えてみました
Section 6 サポートする⾔言語を 削除する
⾔言語の削除 ファイル単位での 削除の場合
対応⾔言語の削除 ファイル単位での削除なら 削除したい⾔言語からチェックを外します。
対応⾔言語の削除 確認画⾯面でチェックを外せばファイルは残ります。 残しておけば、再登録のときに復復活できます。 残す機会は少ないと思いますが。
Base ⾔言語の削除 Base ⾔言語を削除しようとすると …
Base ⾔言語の削除 別の⾔言語に振り替えるかを尋ねられます。 “the Trash” を選択すると削除できます。
すべての⾔言語を削除 全部の⾔言語からチェックを外すと … ファイルがプロジェクトから削除されます 😥
⾔言語の削除 プロジェクトからの 削除の場合
対応⾔言語の削除 プロジェクト設定の Info で、 不不要な⾔言語を選択して「−」を押します。
対応⾔言語の削除 確認画⾯面でチェックを外せばファイルは残ります。 残しておけば、再登録のときに復復活できます。 残す機会は少ないと思いますが。
⾔言語の削除 Base ⾔言語の削除
ファイルから Base ⾔言語を削除 Storyboard で Base ⾔言語を削除すると … 他の⾔言語のローカライズが ⽂文字列列ファイルから Storyboard に変換されます。
Base ⾔言語の削除 プロジェクトから Base ⾔言語を削除すると …
プロジェクトから Base ⾔言語を削除すると … 画⾯面デザインが消滅します 😱
ローカライズの削除 そして 最後の注意
⾔言語の削除 すべての⾔言語を プロジェクトから削除すると …
すべての⾔言語を削除すると … ⾔言語の追加や削除が 💫 いっさい出来なくなります 😱 興味本位で削除しないで下さい
対応⾔言語の削除 さらには … ローカライズされていた ファイルが すべて 💫 😱 プロジェクトから削除されます Delete from disk してたら⼤大変なことに… 😥
Xcode 5 ローカライズ処⽅方箋 気分が少しすぐれないようですが … どうぞおだいじに 😷