[iPhone SDK] アプリケーションのローカライズ
iPhoneアプリを作っていて、一通り作り終わったら最後にやる作業の一つとして、ローカライズがある。
たまにしか実施しないので、毎回やり方を忘れてしまい本を参照しているが、今回はメモを残してみる。
ソースコード中で NSLocalizedString() でローカライズした文字列は、genstrings を使って、Localizable.strings を作り、そのファイルを各言語ごとに編集することで実現する。
自分はいつもプログラムの置かれているディレクトリにTerminalで移動して、コマンドラインで下記を実行している。これにより、実行したディレクトリに Localizable.strings が生成される。
genstrings ./Classes/*.m
genstrings で生成された Localizable.strings をXcodeにインポートして、右クリックで「情報を見る」から「ファイルをローカライズ可能にする」でローカライズできるようにしてから、「ローカリゼーションを追加」で言語を追加する。
インポートの際には、エンコーディング には UTF-16 を選ぶ。UTF-8 では文字化けするようだ。
その後、各言語用に生成された Localizable.strings を編集していく。
例えばこんな感じ。
/* Mon */ "Monday" = "月曜日"; /* No Address */ "No Address" = "住所なし";
xib ファイルのローカライズに関しても、上記と同様に右クリックで「情報を見る」から「ファイルをローカライズ可能にする」→ 「ローカリゼーションを追加」でファイルをローカライズ言語数分用意して、Interface Builderでそれぞれのxibファイルを開いてローカライズしていく。
アプリ名のローカライズに関しては、InfoPlist.strings ファイルを作成し、上記と同様にローカライズ可能な状態にして、
CFBundleDisplayName = "Locations";
と記載しておけばよい。
なぜかこれらが全て書かれた本が見つからない。手元にある本は、どの本もこの中の一部だけしか載っていないようだ。
とりあえず下記2冊を買えば全部載ってます。参考まで。
はじめてのiPhone3プログラミング | |
Dave Mark Jeff LaMarche 鮎川 不二雄
ソフトバンククリエイティブ 2009-12-17 おすすめ平均 |
iPhoneSDK開発のレシピ | |
高山 恭介 広部 一弥 松浦 晃洋
秀和システム 2010-03 おすすめ平均 |
関連記事
-
EverLearn 2.2.1 を公開しました
自作英単語学習アプリ EverLearn 2.2.1を公開しました。 ユーザの方から
-
作りながら覚える3日で作曲入門
10日Pこと、monaca:factory さんの本。評判が良かったので買ってみた。 Win
-
Invalid Signature で App Store に Submit できず
無料版と有料版を同じソースからビルドできるようにしようと思いいろいろ試行錯誤を続けている。 ついにビ
-
「サンプルプログラムでマスターする iPhone SDK」 の感想
2009年9月に発売された本。 iPhone SDK 3.0 リリース後に書かれた本なので、3.
-
[iPhone SDK] Significant-change Location Service の挙動
iPhoneで位置情報取得を連続して行うと、あっという間に電池が無くなってしまう。これは、位置情報取
-
LogLocations iOS7 不具合調査 (startMonitoringSignificantLocationChanges 挙動変更)
LogLocations のユーザの方から、iOS7 になってからLogLocationsでログが保
-
iPhoneアプリやiPadアプリのモックをさくさく作れる iPadアプリ iMockups
iPhoneやiPadアプリのモックアップをサクサク作れそうなiPadアプリ iMockups をR
-
[iOS10] NSPhotoLibraryUsageDescription
iOS10 になってから App Store にアプリのSubmitを行ったところ、アプリのアップロ
-
Pro iPhone Game Development は発売延期らしい
面白そうだったので結構前にAmazonで注文したのだが、ずっと発売されず、おかしいとおもって発売元の
-
List切替が便利なTweetList を買ってみた。
フォローする人が増えてくると、なかなかメインのTLを追うのは難しくなる。 このため、複数のListを