Xcode のローカライズ処方箋 #yhios

>100 Views

May 17, 14

スライド概要

Xcode 5 でローカライズを設定する方法の総ざらいです。

プロジェクトがサポートする言語を登録する方法から、文字列、アプリアイコン、画面デザインのローカライズの仕方の基本を順を追って紹介しています。ローカライズの設定周りを調整する上での注意点についても触れています。

※ Docswell での公開に移行する直前の Slideshare での閲覧数は 7,234 でした。

profile-image

正統派趣味人プログラマー。プログラミングとは幼馴染です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Xcode 5 ローカライズ処⽅方箋 〜~  Xcode  5  再⼊入⾨門  〜~ EZ-‐‑‒NET  熊⾕谷友宏    @es_̲kumagai http://program.station.ez-‐‑‒net.jp/

2.

⾃自⼰己紹介 EZ-‐‑‒NET  熊⾕谷友宏   http://program.station.ez-‐‑‒net.jp/ @es_̲kumagai EZ-‐‑‒NET  IP  Phone ⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for  iPad いつもの電卓 for  iPhone

3.

余談ですが アイデア 投⼊入! @takaaki024  さん EZ-‐‑‒NET  IP  Phone ⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for  iPad いつもの電卓 for  iPhone

4.

先⽉月末から販売開始 道具としての  Xcode  という視点で書きました。 • • • • • • • • • おかげさまで好調なスタート Xcode  全機能を紹介 プロジェクトの作り⽅方 ソースコード編集の効率率率化 ショートカットキーの紹介 オートレイアウトの使い⽅方 ローカライズの設定⽅方法 バージョン管理理の使い⽅方 ビルド設定とスキーム設定 とにかくいろいろ 「特設  Web  資料料館」も公開中 http://ez-‐‑‒net.jp/sp/xcode5/

5.

Xcode  5 ローカライズ処⽅方箋 ローカライズに関係する機能の総ざらい

6.

はじめに ローカライズって? 表⽰示する⽂文字列列やレイアウトを ⾔言語環境に応じて切切り替える機能

7.

たとえば こんなのとか、

8.

たとえば こんなのとか。

9.

Section  1 サポートする⾔言語を プロジェクトに登録する

10.

⾔言語を登録するには 1. プロジェクト設定で⾔言語を追加 2. ファイル毎に対応⾔言語を設定

11.

サポートする⾔言語の登録 プロジェクトの  Info  設定で登録

12.

ファイル単位で有効化 ファイル毎にローカライズを設定可能

13.

ファイル単位で有効化 ローカライズを設定すると ⾔言語毎に別々のファイルが作られます。

14.

ところで  … Base という⾔言語。

15.

Section  2 Base Internationalization アプリに既定の⾔言語を設定して それを基本にローカライズを管理理する

16.

Base  Internationalization Base  Internationalization  の 有効化 というか注意点

17.

Base  Internationalization 無効化できません  😦 というかしないで下さい

18.

Base  Internationalization 無効化したが最期 チェックを⼊入れられなくなります  😨 (Xcode  5.1)

19.

Base  Internationalization チェックボックスを 押してしまったら  😱

20.

Base  Internationalization まだ、間に合います。 慌てずに  Cancel  して下さい。

21.

Base  Internationalization 改めて  …

22.

Base  Internationalization 既定の⾔言語を設定する

23.

既定の⾔言語を設定する 既定の⾔言語 1. 2. 3. 4. 既定の⾔言語を  Info.plist  に設定 (Info  設定の  Localizations  と無関係に設定) Base  ⾔言語としてローカライズ 実⾏行行時の⾔言語環境が 既定の⾔言語と⼀一致したときに採⽤用 ⾔言語環境と同じ⾔言語の ローカライズがあればそちらを優先

24.

既定の⾔言語をプロジェクトに設定 既定の⾔言語の設定は ターゲット設定の  Info  (Info.plist)  にある “Localization  native  development  region”  で設定

25.

既定の⾔言語をプロジェクトに設定 リストからは選択できません  😰

26.

既定の⾔言語をプロジェクトに設定 プロジェクト設定で選択できるリストの 括弧内の表記を⼊入⼒力力するのが適切切(たぶん)

27.

Base  ⾔言語としてローカライズ 既定の⾔言語⽤用のローカライズデータは Base  ⾔言語⽤用のファイルに記載

28.

既定の⾔言語と⼀一致したときに採⽤用 Localization  native   development  region ja 既定の⾔言語と⼀一致! ➡ Base  の設定を採⽤用

29.

⾔言語環境と同じ⾔言語のローカライズを優先 Localization  native   development  region ja 既定の⾔言語と⼀一致! ➡ Japanese  があれば Japanese  の設定を優先

30.

⾔言語環境に対応する⾔言語がない場合 既定の⾔言語にもローカライズ設定にも 該当しない場合は  … ➡ 最近に設定された⾔言語から優先して ⼀一致するものを採⽤用

31.

Base  ⾔言語は  … あくまでも  Info.plist  で指定した⾔言語 特別扱いはされない様⼦子 ⾔言語環境と⼀一致するローカライズが 無いときに無条件で採⽤用されるものではない

32.

Base  ⾔言語 要点 ̶—  捉え⽅方  ̶— Base  ⾔言語  =$(CFBundleDevelopmentRegion);                                                              Localization  native  development  region

33.

Section  3 実⾏行行環境に応じて ⽂文字列列をローカライズ

34.

⽂文字列列をローカライズするには 1. ⾔言語毎に⽂文字列列テーブルを⽤用意 2. ⽂文字列列テーブルから⽂文字列列を取得

35.

⽂文字列列をローカライズする  (1/2) 最もよくある例例 Localizable.strings  を使って ローカライズする

36.

⾔言語毎に⽂文字列列テーブルを⽤用意 Localizable.strings

37.

⾔言語毎に⽂文字列列テーブルを⽤用意 ⾔言語毎に内容を記載 ⽂文字列列テーブルの書式は  … “Key”  =  “Value”;

38.

⾔言語毎に⽂文字列列テーブルを⽤用意 NSLocalizedString  マクロを使って取得

39.

⽂文字列列をローカライズする  (2/2) もうひとつの例例 任意の⽂文字列列テーブルを使って ローカライズする

40.

⾔言語毎に⽂文字列列テーブルを⽤用意 任意の⽂文字列列テーブル

41.

⾔言語毎に⽂文字列列テーブルを⽤用意 NSBundle  クラスの -‐‑‒localizedStringForKey:value:table:  で取得 value  が  nil  または  @””  の場合は ⽂文字列列テーブルに無いキーはそのまま使⽤用

42.

Section  4 実⾏行行環境に応じて アプリ名をローカライズ

43.

⽂文字列列をローカライズするには 1. InfoPlist.strings  を⽤用意 2. CFBundleDisplayName  で ⾔言語毎にアプリ名を設定

44.

⾔言語毎に  InfoPlist.strings  を⽤用意 InfoPlist.strings

45.

⾔言語毎に  InfoPlist.strings  を⽤用意 アプリの表⽰示名を CFBundleDisplayName  に設定

46.

⾔言語毎に  InfoPlist.strings  を⽤用意 これで完成

47.

Section  5 実⾏行行環境に応じて Storyboard  をローカライズ NIB  ファイルも  OK

48.

Storyboard  をローカライズするには 1. Storyboard  ファイルに ローカライズの仕⽅方を設定 2. Base  ⾔言語でデザインを設計 3. デザイン内のテキストを ⾔言語毎に⽂文字列列テーブルで指定 ⾔言語によってデザインを 変えることも可能

49.

Storyboard  にローカライズの仕⽅方を設定 普段通りに対応する⾔言語を指定 このとき  Base  以外の⾔言語で ローカライズ⽅方法を選択できる

50.

Storyboard  にローカライズの仕⽅方を設定 既定では  Base  ⾔言語だけが  Storyboard  で その他の⾔言語は⽂文字列列ファイル

51.

Storyboard  にローカライズの仕⽅方を設定 これで  … デザインを全⾔言語で共⽤用し テキストを⾔言語毎に設計可能に Base  Internationalization  独⾃自の設計⽅方法

52.

Storyboard  にローカライズの仕⽅方を設定 Base  とその他を別形式で設計

53.

Storyboard  にローカライズの仕⽅方を設定 ⽂文字列列ファイルで指定する  ID  は 属性インスペクターの  Object  ID

54.

Storyboard  にローカライズの仕⽅方を設定 ⾔言語によって 異異なるデザインにしたいときは Xcode  5  より前とよく似たデザイン⽅方法

55.

Storyboard  にローカライズの仕⽅方を設定 ローカライズ⽅方法を切切り替えることで  …

56.

Storyboard  にローカライズの仕⽅方を設定 Base  以外の⾔言語でも Storyboard  によるデザイン設計が可能に

57.

Storyboard  にローカライズの仕⽅方を設定 こんな⾵風に ボタンの位置を変えてみました

58.

Section  6 サポートする⾔言語を 削除する

59.

⾔言語の削除 ファイル単位での 削除の場合

60.

対応⾔言語の削除 ファイル単位での削除なら 削除したい⾔言語からチェックを外します。

61.

対応⾔言語の削除 確認画⾯面でチェックを外せばファイルは残ります。 残しておけば、再登録のときに復復活できます。 残す機会は少ないと思いますが。

62.

Base  ⾔言語の削除 Base  ⾔言語を削除しようとすると  …

63.

Base  ⾔言語の削除 別の⾔言語に振り替えるかを尋ねられます。 “the  Trash”  を選択すると削除できます。

64.

すべての⾔言語を削除 全部の⾔言語からチェックを外すと  … ファイルがプロジェクトから削除されます  😥

65.

⾔言語の削除 プロジェクトからの 削除の場合

66.

対応⾔言語の削除 プロジェクト設定の  Info  で、 不不要な⾔言語を選択して「­−」を押します。

67.

対応⾔言語の削除 確認画⾯面でチェックを外せばファイルは残ります。 残しておけば、再登録のときに復復活できます。 残す機会は少ないと思いますが。

68.

⾔言語の削除 Base  ⾔言語の削除

69.

ファイルから  Base  ⾔言語を削除 Storyboard  で  Base  ⾔言語を削除すると  … 他の⾔言語のローカライズが ⽂文字列列ファイルから  Storyboard  に変換されます。

70.

Base  ⾔言語の削除 プロジェクトから Base  ⾔言語を削除すると  …

71.

プロジェクトから  Base  ⾔言語を削除すると  … 画⾯面デザインが消滅します  😱

72.

ローカライズの削除 そして 最後の注意

73.

⾔言語の削除 すべての⾔言語を プロジェクトから削除すると  …

74.

すべての⾔言語を削除すると  … ⾔言語の追加や削除が  💫 いっさい出来なくなります   😱 興味本位で削除しないで下さい

75.

対応⾔言語の削除 さらには  … ローカライズされていた ファイルが  すべて    💫 😱 プロジェクトから削除されます Delete  from  disk  してたら⼤大変なことに…  😥

76.

Xcode  5  ローカライズ処⽅方箋 気分が少しすぐれないようですが  … どうぞおだいじに  😷